#include #include #define MAXSIZE 20 //二叉树结点的结构体表示形式 typedef struct node { char data; }BTree; //栈的结构体表示形式 typedef struct stackelem { }Stack; //队列的结构体的表示形式 typedef struct queueelem { }Queue; //创建二叉树,利用递归的方法 BTree* Create() { } //求二叉树的高度,递归实现 int Height(BTree* bt) { } int Width(BTree *T)//二叉树宽度 { 向量存放各层结点数 最大宽度 若是访问根结点 第1层加1 到第2层 若有左孩子则该层加1 若有右孩子则该层加1 访问子树结点 下一层结点数 n[i]++; 取出最大值 遍历左子树 往上退一层 遍历右子树 return max; } //层次遍历二叉树,用队列来实现 void TraversalOfLevel(BTree* bt) { { q.front=q.front+1; } int leafcount(BTree* root)//统计叶子结点个数 { } int CountNode (BTree *t) //节点总数 { } BTree *copy(BTree *p) // 复制一棵二叉树 { } /* 判断两棵二叉树是否相似的递归算法 */ int Similar(BTree *t1, BTree *t2) } int CompTree(BTree *tree1,BTree *tree2)//二叉树是否相等 { } int main() { 叶子结点个数为:\\n"); 结点总数为:\\n"); 度为1的结点个数为:%d\\n",countn-2*leafgs+1); 度为2的结点个数为:%d\\n",leafgs-1); 二叉树的高度:\\n"); 二叉树的宽度:\\n"); 层次遍历二叉树:\\n"); 复制的二叉树为:\\n"); 此两二叉树相似\\n"); 此两二叉树不相似\\n"); 此两二叉树相等\\n"); 此两二叉树不相等\\n"); } 运行截图:下载本文