www.whkt.net > 统计二叉树中度为2的节点

统计二叉树中度为2的节点

有几种程序可以考虑一下:【1】 int TwoBranch(Bitree T) { int s; if(T == NULL) return 0; s = (T->lchild != NULL) && (T->rchild != NULL); return s + TwoBranch(T->lchild) + TwoBranch(T->rchild); } 【2】 int leafnum(Bnode *t) { int i,j; if(t==NULL)return

一棵非空的二叉树中,如果度为0的节点数为n0,度为2的节点数为n2,则n0=n2+1

总顶点数=总度数+1.设度为1的有x,叶子节点y.18+x+y=2*18+1*x+1.y=19

算法如下,将指向树的根节点的指针作为入参返回的即为度为2的全部结点的个数.int countDegreeTwo(TreeNode *root) { if (root == NULL) return 0; if (root->left != NULL && root->right != NULL) return 1 + countDegreeTwo(root->left) + countDegreeTwo(root->right); return countDegreeTwo(root->left) + countDegreeTwo(root->right); }

19性质1:二叉树的终端结点(叶子结点)数等于双分支结点数加1.假设二叉树中终端结点数为n0,单分支结点数为n1,双分支结点数为n2,二叉树中总结点数为n,因为二叉树中所有结点度数均小于或等于2,所以有:n=n0+n1+n2

二叉树有一个性质是:对任何二叉树T,如果其终端结点数位n0,度为2的结点数为n2则n0=n2+1.由此叶子结点数为16个

∵叶子结点数=度为2的结点数+1 度为2的结点有18个∴叶子结点数=18+1=19

#include #define maxNumberLength 16typedef struct node{ int data; struct node *lchild,*rchild;} node;node *create(void);void insert(node *&root,int data);void inOrder(node *root);void remove(node *&root,int data);void subRemove(node *root,node *

网站地图

All rights reserved Powered by www.whkt.net

copyright ©right 2010-2021。
www.whkt.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com