树中相关计算

1.在一棵度为4的树T中,若有20个度为4的结点,10个度为3的结点,1个度为2的结点,10个度为1的结点,则树T的叶节点个数是(82)
分析:除了根节点之外,树的每个节点都有唯一的一个入度,因此计算出共有多少个出度,再加1就是树中总的节点数目。也就是20*4+10*3+1*2+10*1+1=123个
而四叉树里节点就5类,有4个孩子的,有3个孩子的,有2个孩子的,有1个孩子的,没有孩子的,现在前4类的数目知道了,是20+10+1+10=41,那么没有孩子的节点自然就是123-41=82个。
2.二叉排序树:
已知数据元素为(34,76,45,18,26,54,92,65),按照依次插入节点的方法生成一棵二叉排序树,则该树的深度为(5)
根据二叉排序树的性质:
(1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值;
(2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值;
(3)左、右子树也分别为二叉排序树;
所以根据性质:第一个数34为根节点;
第二个树:76>34,所以为34的右孩子;
第三个数45:因为34<45<76,所以45为76的左孩子;
第4个数18:18<34所以为根节点的左孩子;
第五个数26:因为18<26<34,所以26在根节点的左子树上且为节点18的右孩子;
第六个数54:因为54>34,所以在根节点的右子树上,又45<54<76,所以54为45的右孩子;
第7个数92:因为92>76>34,所以92为76的右孩子;
第8个数65:首先64>34,所以为右子树上的节点,又65<76,所以为76左子树上的节点,又65>54>45,所以为54的右孩子。
这里写图片描述
3.若X是二叉树中序线索树中有一个左孩子的结点,且X不为根,则x的前驱为X的左子树中最右结点
4.在有序表(5,8,36,48,50,58,88)中二分查找字58时所需进行的关键字比较次数是(),对应的判定树高度为(). 2,3
根据有序表建立二叉排序树
48
/ \
8 58
/ \ / \
5 36 50 88
58在第二层,也就是第二次比较就可以确定了
BST的高度为3,也就是最多要经过3次排序
所以最终结果为 2,3
5.若向平衡二叉树中插入一个新结点后破坏了平衡二叉树的平衡性。首先要找出插入新结点后失去平衡的最小子树根结点的指针。然后再调整这个子树中有关结点之间的链接关系,使之成为新的平衡子树。当失去平衡的最小子树被调整为平衡子树后,原有其他所有不平衡子树无需调整,整个二叉排序树就又成为一棵平衡二叉树。
失去平衡的最小子树是指以离插入结点最近,且平衡因子绝对值大于 1 的结点作为根的子树。假设用 A 表示失去平衡的最小子树的根结点,则调整该子树的操作可归纳为下列四种情况。
这里写图片描述
这里写图片描述
平衡化靠的是旋转。 参与旋转的是 3 个节点(其中一个可能是外部节点 NULL ),旋转就是把这 3 个节点转个位置。注意的是,左旋的时候 p->right 一定不为空,右旋的时候 p->left 一定不为空,这是显而易见的。
如果从空树开始建立,并时刻保持平衡,那么不平衡只会发生在插入删除操作上,而不平衡的标志就是出现 bf == 2 或者 bf == -2 的节点。
6.设一棵m叉树中度数为0的结点数为N0 ,度数为1的结点数为Nl ,……,度数为m的结点数为Nm,则N0=()。l+N2+2N3+3N4+……+(m-1)Nm
m叉树总的指针数为N1 + 2N2 + …+mNm
总的节点数为N 0 +N1 + N2 + …+Nm ,需要的指针数为N 0 +N1 + N2 + …+Nm -1
以上两式相等得出N 0 =1+ N2 + 2N3…+(m-1)Nm
7.这里写图片描述
8.二叉排序树的构造过程:按照给定序列,以此将结点插入二叉排序树中,在二叉排序树中插入新结点,要保证插入后的二叉树仍符合二叉排序树的定义。

  插入过程:若二叉排序树为空,则待插入结点*S作为根结点插入到空树中;

  当非空时,将待插结点关键字S->key和树根关键字t->key进行比较,

  若s->key = t->key,则无须插入,若s->key< t->key,则插入到根的左子树中,

  若s->key> t->key,则插入到根的右子树中。而子树中的插入过程和在树中的插入过程相同,

  如此进行下去,直到把结点*s作为一个新的树叶插入到二叉排序树中,或者直到发现树已有相同关键字的结点为止。
  说明:

  ① 每次插入的新结点都是二叉排序树上新的叶子结点。

  ② 由不同顺序的关键字序列,会得到不同二叉排序树。

  ③ 对于一个任意的关键字序列构造一棵二叉排序树,其实质上对关键字进行排序。
查找的过程类似,从根结点开始进行比较,小于根结点的在左子树上,大于根结点的在右子树上,以此查找下去,直到查找成功或不成功(比较到叶子结点)。
9.假定一棵度为3的树中结点数为50,则其最小高度为 5
分析:高度为n的三叉树的结点数:
1+3+32+…+3n-1=(3n-1)/2
由题意:(3n-1)/2=50
则,n=log3101取上整,结果为5
10.假设用于通信的电文由 5 个字母组成,字母在电文中出现的频率分别为 2,4,5,7,8 根为第一层,用这 5 个字母设计哈弗曼树带权路径长度为(58)
这里写图片描述
带权路径长度=(2+4)*3+(5+7+8)*2=58

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值