您好,欢迎来到飒榕旅游知识分享网。
搜索
您的当前位置:首页算法与数据结构实验7

算法与数据结构实验7

来源:飒榕旅游知识分享网
算法与数据结构(二叉树)实验: 问题:创建一棵如下的树

A B C D E F G 代码:

//顺序存储结构 -- 树 #include #include #include #include

//一维数组能够存放的最大结点数 #define MAX_SIZE 255

//定义顺序树类型

typedef char SeqTree[MAX_SIZE]; char a[MAX_SIZE];

/*初始化空二叉树*/

void InitSeqTree(SeqTree tree){ //将字符数组中的每个元素都设置为0字符 for(int i=0;i//创建完全二叉树:i为数组中的下标

void CreateSeqTree(SeqTree tree,int i) { char ch; ch=getchar();

fflush(stdin); if(ch=='^')//输入^符号表示结束当前结点的输入 { tree[i]='0'; return; } tree[i]=ch; //某个结点输入完毕后,还需要让用户输入左孩子和右孩子 printf(\"左孩子结点: \"); CreateSeqTree(tree,2*i+1);//递归调用 printf(\"右孩子结点; \"); CreateSeqTree(tree,2*i+2);//递归调用 }

//获取数的根结点元素

char GetSeqTree(SeqTree tree) { return tree[0]; }

//获取树的结点总数

int GetSeqTreeLength(SeqTree tree) { int len=0; for(int i=0;i//获取树的深度

int GetSeqTreeDepth(SeqTree tree) { //性质2:深度为k的二叉树最多有2^k-1结点 int depth=0; int len=GetSeqTreeLength(tree); for(int i=0;i(pow(2,depth)-1)) { depth++; }

} /*while((int)pow(2,depth)-1void TestSeqTree() { SeqTree tree; InitSeqTree(tree); printf(\"请输入根结点\"); CreateSeqTree(tree,0); for(int i =0;i < 15;i++) { printf(\"%c,\ } putchar('\\n'); printf(\"总结点数:%d\\n\ printf(\"深度:%d\\n\}

void main() { TestSeqTree(); }

效果图:

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- sarr.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务