A B C D E F G 代码:
//顺序存储结构 -- 树 #include //一维数组能够存放的最大结点数 #define MAX_SIZE 255 //定义顺序树类型 typedef char SeqTree[MAX_SIZE]; char a[MAX_SIZE]; /*初始化空二叉树*/ void InitSeqTree(SeqTree tree){ //将字符数组中的每个元素都设置为0字符 for(int i=0;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 } /*while((int)pow(2,depth)-1 void main() { TestSeqTree(); } 效果图: 因篇幅问题不能全部显示,请点此查看更多更全内容