树、二叉树、查找树

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

KL
M
【哈夫曼 Huff哈m夫a 曼 1.树又结叫 点的路径
森林转换为二叉树
E KF
L
C GD
H MI
J
从根 至 2.某结树点 的路径从长根 至 3.所有结结 点的带树权根 到 4.某结树点 的带权树路中 所 5.有叶哈子 夫曼树带:权 路径长度
2
4 7 52 4
7*2+5*2+2*2+4*2=36
else top:=t if ⑦ end; until end;
5、已知 二 pr叉oc树eTd u{re f{r主on程t序1, 调用形式
begiifn front1 else new(t) point: while buildtr buildtr
答案如下: ① similar(t^.llink) and similar(t^.Rlink) ② num(t^.llink)+num(t^.Rlink)+1 ③ max(depth(t^.llink),depth(t^.Rlink))+1 ④s[top]^.llink<>nil ⑤s[top]^.key ⑥s[top]:=s[top]^.rlink ⑦top>0 ⑧top=0 ⑨point:=point+1 ⑩point-front2+front1+1,rear1, point+1,rear2,t^.right
B
只有根的 二叉树
BC
D
EF GHI J
KL
M 森林
B
B
E
右子树为空 的二叉树
E
左子树为空 的二叉树
A
两棵不同的二叉树
B
C
D
E
F
G
H I J K L MN O 一棵深度为4的满二叉树
A
B
C
D
E
F
G
HI J KL 完全二叉树
(2)设树 枝 (3数)所为有 树 (4枝) 由由度 由(2()1,()3和) (4)
数组元素值 A B C D
F
I
L
数组元素序号 ① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨ ⑩ ⑾ ⑿ 数组元素值 A B C D E F G H I J K L
①②③④ ⑤⑥⑦⑧
二. 链式 存(一储)2个 指 ty针pe的数 point=
node=
data:in
lchild,r
evanrd; head,p
begin
E K L
F
G
H M
I
J
树的凹入法表示
【树的基 本1.术结语点】 的度:
结 2.点树拥的有 度
树 3.内叶各子结 (Leaf)
度 4.为内0的部 结点/非
度 5.不孩为子0 和双亲:
结点的子
该 6.结兄点弟称 (Siblin
同 7.一祖个先双 与子孙:
度为0 度为1 KLFGMIJ CH
度为2 BE
k-1≤log2n<k ①
A

③源自文库
B


D
E
C


F
G
⑧ H
⑨ ⑩⑾ ⑿ I J KL
按层次次序编号的完全二叉树
【二叉树 的一存. 顺储序】 存储

A


B


D
E
C


F
G
⑧ H
⑨ ⑩⑾ ⑿ I J KL
完全二叉树
② B ④ D
⑨ I
① A
③ C ⑥ F
⑿ L
数组元素序号 ① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨ ⑩ ⑾ ⑿
度为3 AD
从根至某 以 8.某结结点点 的层次: 根 9.为树第的1 深度/高 树中结点
【森林】是 m(m≥ 【二叉树 的定义二】 叉树的每
空二叉树
【满二叉 树】 深 度为i且
【完全二 叉树】满 足 1.以最下后条 一 2.层其结余点 层都充满
【二叉树 的1.性二质叉】 树的第i 2. 深度 为i的二 3. 对任 意的二叉 n0=以nn2 1 表 (1示)结度点为 总数
end;
end;
14. 已知 7A个. 4节2点6 5B.147235 6C.143273 1D.544275 6173
20.已知 7个节该点 二A.叉4树6的5 2731
7 5 24
2*3+4*3+5*2+7*1=35
一棵哈夫曼树
18 11 7 65 42
2、设树 的度为
data child1child2… ... childk 设T是一 棵有具③有N 个结点被
3、二叉 设树二中叉,树 中的树结枝点数数 发出一个
4、如果 结一点棵,M度则 该树中共
5、所谓 严严格格二二叉叉 树共有⑨
4. 具有n个结点的完全二叉树的深度为 log 2 n 1 其中 x 表示不大于x的最大整数
假设深度为k,则: 2k-1-1<n≤2k-1
2k-1≤n<2k
∵k是整数,∴k= log 2 n 1
5. 如 的右完图全所二 叉树:
((12)) 如如果i>1,则i的双亲为 i / 2
果 (32)i≤如 果2i+1
【树的定 义】树是 (n(1)n≥有 且(仅2)有其一 余结点分
【树的表 示】
A
一棵只有 根结点的树
层次
A
1
BC
D
2
EF GHI J 3
KL
M
4
树的层次表示
A
KL E
BF
J M
HI D
G C
树的嵌套集合表示
(A(B(E(K,L),F),C(G),D(H(M),I,J))) 树的广义表表示
A B
C D
左子树指针
右子树指针Nil
A
A
B
B
C
D
E
F
G 二叉树的左右指针表示
C
D
E
F
G
二叉树的左、右、父指针表示
3. 后序 LRN后: 序 遍历左子
掌1.握由:前 序 2.序由列二+ 叉树得到
【树的存 储】
data child1child2… ... childk
数据 第1棵子 第2棵子 第k棵子 树指针 树指针 树指针
A
B
C
D
EF
G
一棵二叉树
在二叉树 的左右指
【二叉树 的遍历一】 般 1.先前左序后 NLR遍: 历 根 2.;前中序序 LNR中: 序 遍历左子
lchilddata parent rchild
左子树 数据 双亲 右子树
指针
指针 指针
3个指针的数据结构
a b
左子树指针 右子树指针Nil
父结点指针Nil
75
7*3+5*3+4*2+2*1=46
【构造哈 夫1.曼根树据】 其给中定每的棵n 二2.叉在树FTi 二中叉选树取的两 根3.结在点F的 中 4.删除重这 复2、
75
42
7
6
54 2
11
6
5
74 2
(1)如果 以 (2线)如性果表 将 (3每)由棵哈子 因夫为曼树的 n0=n2+
【树的练 习1、】如果 有对:一如棵果有 ①
6、设定 二叉树的
llink key Rlink type tree=^ node= key:lo 请en补d充; 完 整1、下判面定 两 fu棵nc给ti定o n begin case (t1=nil (t1=nil else end; end;
2、求二 叉 fu树nc中ti的o n begiifn t=nil else
lchilddata rchild
左子树 数据 右子树
指针
指针
2个指针的数据结构
a
b
readln new(h p^.dat head^. end.
(二)3个 指 ty针pe的数 point= node= data:in lchild,r evanrd; head,p begin readln new(h p^.dat head^. end.
答案如下: ①2i+1≤n ②2i+1 ③n-1 ④n-1 ⑤nk-n+1
⑥N0+N1+N2-1
⑦2N2+N1
⑧N2+2N3+3N4+…+(m-1)Nm ⑨2n-1
e3n、d求; 树 的 fu深nc度ti,o n begiifn t=nil else e4n、d二; 叉 树 pr中oc序e遍d uvarer s:array top:int begin top:=1 repeat while s[top+ top:=t end; write( if ⑥
树的指针存储结构
在结点度 为k的树
【树与森 林转换左为 子女,右
A
1. 第1个子女作为左子女 2. 其它第k个子女作为 第k-1个子女的右子女
B
CD
B
A C
E F G H IJ E F G H
树转换为二叉树
A
向右旋转
B
D IJ
E F
C HD
GI
J
B
BC
D
EF GHI J
BC
D
EF GH I J
KL
M
相关文档
最新文档