试编写计算二叉树深度、所有结点总数、叶子结点数、双孩子结点个数、单孩子结点个数的算法
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/11/08 18:37:02
试编写计算二叉树深度、所有结点总数、叶子结点数、双孩子结点个数、单孩子结点个数的算法
一点分都不该 看来你不急啊
再问: 我的分都浪费完了啊
再答: 怪你
再问: 帮帮忙啊 老师催着叫实验报告啊 老师也不帮忙改 自己改不了啊!
再答: typedef struct bnode{ struct bnode*lchild; struct bnode*rchild; void*data; }btree,*btreeptr; #define MAX(a,b) ((a)>(b)?(a):(b)) int bt_depth(btree*T) { if(T==NULL) return 0; else return MAX( bt_depth(T->lchild),bt_depth(T->rchild) )+1; } int bt_ncount(btree*T) { if(T==NULL) return 0; else return bt_ncount(T->lchild)+bt_ncount(T->rchild)+1; } int bt_leafcount(NULL) { if(T==NULL) return 0; else if( !T->lchild && !T->rchild) return 1; else return bt_leafcount(T->lchild)+bt_leafcount(T->rchild); } int bt_2kids_parent_count(btree*T) { if(T==NULL) return 0; else if (T->lchild &&T->rchild) return bt_2kids_parent_count(T->lchild)+bt_2kids_parent_count(T->rchild)+1; else return bt_2kids_parent_count(T->lchild)+bt_2kids_parent_count(T->rchild); } int bt_kid_parent_count(btree*T) { if(T==NULL) return 0; else if (T->lchild && !T->rchild) return bt_kid_parent_count(T->lchild)+1; else if(!T->lchild&& T->rchild) return bt_kid_parent_count(T->rchild)+1; else return bt_kid_parent_count(T->lchild)+bt_kid_parent_count(T->rchild); }
再问: 我的分都浪费完了啊
再答: 怪你
再问: 帮帮忙啊 老师催着叫实验报告啊 老师也不帮忙改 自己改不了啊!
再答: typedef struct bnode{ struct bnode*lchild; struct bnode*rchild; void*data; }btree,*btreeptr; #define MAX(a,b) ((a)>(b)?(a):(b)) int bt_depth(btree*T) { if(T==NULL) return 0; else return MAX( bt_depth(T->lchild),bt_depth(T->rchild) )+1; } int bt_ncount(btree*T) { if(T==NULL) return 0; else return bt_ncount(T->lchild)+bt_ncount(T->rchild)+1; } int bt_leafcount(NULL) { if(T==NULL) return 0; else if( !T->lchild && !T->rchild) return 1; else return bt_leafcount(T->lchild)+bt_leafcount(T->rchild); } int bt_2kids_parent_count(btree*T) { if(T==NULL) return 0; else if (T->lchild &&T->rchild) return bt_2kids_parent_count(T->lchild)+bt_2kids_parent_count(T->rchild)+1; else return bt_2kids_parent_count(T->lchild)+bt_2kids_parent_count(T->rchild); } int bt_kid_parent_count(btree*T) { if(T==NULL) return 0; else if (T->lchild && !T->rchild) return bt_kid_parent_count(T->lchild)+1; else if(!T->lchild&& T->rchild) return bt_kid_parent_count(T->rchild)+1; else return bt_kid_parent_count(T->lchild)+bt_kid_parent_count(T->rchild); }
试编写计算二叉树深度、所有结点总数、叶子结点数、双孩子结点个数、单孩子结点个数的算法
已知一棵完全二叉树的结点数,试求叶子结点的个数.
数据结构C递归的方法 前序 中序 后序 交换二叉树每个结点的左孩子和右孩子 结点个数 深度 叶结点个数
求二叉树的结点个数算法
已知某二叉树的叶子结点的个数为10个,度为1的结点个数为8个,求该二叉树结点总数
结点为什么在深度为7的满二叉树中,度为2的结点个数为多少 和深度为5的满二叉树有几个叶子结点的算法不同
满二叉树的叶结点个数为N,则它的结点总数为
在深度为5的满二叉树中,叶子结点的个数为多少?
深度为5的满二叉树中,叶子结点的个数为多少
(23) 在深度为5的满二叉树中,叶子结点的个数为______.
有一个完全二叉树有1000个结点,试分别求出度为2 及叶子结点的个数
一个完全二叉树中,如果叶子结点的个数为n.则这颗二叉树一共有几个结点