树:非线性结构
在树结构中,节点间关系是前驱唯一而后继不唯一,即节点之间是一对多的关系
树结构是指具有分支关系的结构,树结构应用广泛,特别是在大量数据处理方面显得更加突出。
任何数都可以转化为二叉树
二叉树:1.每个节点的度都不大于2;
? ? ? ? ? ? ? 2.每个节点的孩子节点次序不能任意颠倒(即有序树)
完全二叉树:1.叶子结点只可能出现在最后两层
? ? ? ? ? ? ? ? ? ? ? 2.度为1的结点个数为0或1
满二叉树必定为完全二叉树,而完全二叉树不一定为满二叉树
二叉树的性质(常用):
? ? ? ? ? ? ? ? 1.在二叉树的第i层上至多有2^(i-1)个节点(i>=1)
? ? ? ? ? ? ? ? 2.深度为k的二叉树至多有2^k-1个节点(k>=1)
? ? ? ? ? ?3.对于任意一颗二叉树T,若终端结点数为n0,二其度数为2的结点数为n2,则n0=n2+1
? ? ? ? ? 4.具有n个节点的完全二叉树的深度为【】+1
? ? ? ? ? (ps:【】:向下取整,可与定理二结合下)
常用的有关树的知识:
1.二叉树的存储结构:顺序存储结构和链式存储结构
2.若一个二叉树含有n个节点,则其二叉链表中必含有2n个指针域,其中必有n+1个空的链域,n-1个非空的链域
3.前序+后序并不一定能唯一确定二叉树
4.前序+中序? 或者? ?中序+后序可以唯一?确定一个二叉树
5. 树的先根遍历《=》转换后二叉树的先序遍历
? ? ?树的后根遍历《=》转换后二叉树的中序遍历
6.哈夫曼树不唯一,哈夫曼编码不唯一
ps:叶子结点度为0,若完全二叉树中,若没有左结点,则一定没有右结点
后序遍历:左 右 root
中序遍历:左 root 右
所以:若后序遍历和中序遍历正好一样,则都无右孩子
后序遍历:左 root? ? 中序遍历:左 root
先序遍历:root 左 右? ? A? B? C
中序遍历:左?root? 右? ?B A? C
下标从1开始,2n和2n+1为兄弟,例如 24?和25为兄弟,22和23为兄弟
中序遍历:LDR
前序遍历:DLR
若R不存在,则错 ,因为LD? 的最后一个结点为D? ? ?DL的最后一个结点为L
哈夫曼字符的频率相同时每个字符的码长不是确定的
A.有序数据元素
B.无序数据元素
C.元素之间无联系的数据
D.元素之间具有分支层次关系的数据
A.n+1
B.n
C.n?1
D.无法确定
A.23
B.37
C.44
D.46
A.左、右子树的高度均相同
B.左、右子树高度差的绝对值不超过1
C.左子树的高度均大于右子树的高度
D.左子树的高度均小于右子树的高度
A.acgabfh
B.adbagbb
C.afbeagd
D.afeefgd
?按照给定的编码找到合适的数字
0100??011??001? 001??011? ? ?11??0101
0100(a)011(f) 001(e)? 001(e) 011(f) 11(g)? 0101(d)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
A.D
B.H
C.G
D.F
?先看先序遍历a为根节点,再中序遍历,GH为右子树,再看先序遍历,G在前面,所以父节点的右子节点为G
A.先序遍历
B.中序遍历
C.后序遍历
D.按层遍历
A.NRL
B.RNL
C.LRN
D.RLN
A.发生改变
B.不发生改变
C.不能确定
D.以上都不对
A.8
B.15
C.16
D.32
在第i层上至多有2^(i-1)个结点,即2^(5-1)=2^4=16
A.a
B.b
C.c
D.d
已知根节点为a,看中序序列,gehc为其右子树,再从先序遍历找cegh,发现c在最前面,则右子树的根节点为c
A.16
B.18
C.20
D.30
度为0的结点个数=度为2的结点个数+1
即0:8 1:5 2:7
所以总结点的个数为:7+5+8=20
A.999
B.1000
C.1001
D.1002
完全二叉树有2001个节点
树叶节点即度为0的结点,假设有x个,则度为2的结点的个数为x-1个
所以x+x-1=2001,解得x=2002/2=1001