c语言遍历二叉树的代码?
1.t = malloc(sizeof(tree));
2.t->rchild =createTree();
3.void qianxu(tree *t)
4.zhongxu(t->lchild );//再读左子树
printf("%c",t->data);//先读根结点
zhongxu(t->rchild );//再读右子树
5.houxu(t->lchild );//再读左子树
houxu(t->rchild );//再读右子树
printf("%c",t->data);//先读根结点
6.return 0;
7.n=count(t->lchild)+count(t->rchild)+1;
8.t1->data=t->data;
9.return t1;
10.return m+1;
PS:注意有些语句结尾是没有分号的
c语言里初始化二叉树是什么意思?
二叉树是n(n>=0)个结点的有限集合,该集合或者为空集(称为空二叉树),或者由一个根结点和两棵互不相交的、分别称为根结点的左子树和右子树组成。每个结点最多有两颗子树,所以二叉树中不存在度大于2的结点。左子树和右子树是有顺序的,次序不能任意颠倒。
按照二叉树的定义,具有3个结点的二叉树有( )种。A)3 B)4 C)5 D)6?
我选D
因为
设三个结点a,b,c
a做根结点,有两种,a上,b左,c右,a上,c左,b右
b做根结点,有两种,b上,a左,c右,b上,c左,a右
c做根结点,有两种,c上,b左,a右,c上,a左,b右
共6种
高度为k的二叉树最多有几个结点?
一颗深度为k的二叉树,最多有(2^k)-1个节点,第k层最大节点数为2^(k-1)次方。
性质1:二叉树的第i层上至多有2i-1(i≥1)个节点。
性质2:深度为h的二叉树中至多含有2h-1个节点。
性质3:若在任意一棵二叉树中,有n0个叶子节点,有n2个度为2的节点,则必有n0=n2+1。
性质4:具有n个节点的完全二叉树深为log2x+1(其中x表示不大于n的最大整数)。