树转为二叉树的方法:共19页文档
第7章-树和二叉树第2讲-二叉树的概念
第一层
树的特 点?
第二层 第三层 第四层
复习:二、树的基本术语
1.结点A、D的度?树的度? 2;3;3; 2.根结点?分支结点?叶子结点? A;BCDE;GHIJF;
在二叉链中,空指针的个数?
b A
B∧
C
∧D
∧E∧
∧F∧
∧G∧
n个结点 2n个指针域 分支数为n-1 非空指针域有n-1个 空指针域个数 = 2n-(n-1) = n+1
n=7 空指针域个数=8
39/10
40/10
二叉树
当n=3,结果为ห้องสมุดไป่ตู้。
第n个Catalan数
41/23
有n个结点并且高度为n的不同形态的二叉树个数是多少? 该二叉树:有n层,每层一个结点,该结点可以
43/23
结点个数为n,树形可以唯一确定 叶子结点个数为n0,树形不能唯一确定 n为奇数时,n1=0; n为偶数时,n1=1。 n0=n2+1 高度h= log2(n+1),是n个结点高度最小的二叉树
44/23
含有60个叶子结点的二叉树的最小高度是多少?
在该二叉树中,n0=60,n2=n0-1=59,n=n0+n1+n2=119+n1。 当n1=0且为完全二叉树时高度最小。 此时高度h=log2(n+1)= log2120=7。
作为双亲结点的左孩子,也可以作为右孩子 这样的二叉树的个数=1×2×…×2=2n-1。
例如,当n=3时有22=4个这样的二叉树。
树与二叉树h
SBNode nodes[MAXSIZE]; } SBTree;
举例
结点 左子
右子
1
26 34
1
2
6
2
3
4
3
0
4
4
0
0
4
4
0
0
特点:
6
0
0
找子方便,找父 结点不便.
三、二叉链表存储结构
第一层 第二层
( A ( B ( E (K,L),F),C(G),D( H (M),I,J )))
第四层 第三层
二、基本术语
结点:包括一个数据元素及若干个指向其它子树 的分支;例如,A,B,C,D等。
叶结点:无后件结点为叶结点;如K,L,M。 根结点:无前件的结点为根;例如,A结点。
子结点:某结点后件为该结点的子结点;例如,
方法描述: 从根结点a开始访问, 接着访问左子结点b, 最后访问右子结点c。
即:
根
A 访问根结点 B 先序遍历左子树 C 先序遍历右子树
a
左子 右子
bc
二、中序法(InOrder)
方法描述:
从左子结点b开始访问,
接着访问根结点a,
最后访问右子结点c。
即:
根
A 中序遍历左子树 B 访问根结点 C 中序遍历右子树
计算机学院
自动化学院
各种社会组织机构;
在计算机领域中,用树表示源
程序的语法结构;
2101 2102
2103
在OS中,文件系统、目录等组
织结构也是用树来表示的。
树-二叉树
信息学奥赛培训之『树——二叉树』树——二叉树为何要重点研究二叉树? 引 : 为何要重点研究二叉树 ? (1)二叉树的结构最简单,规律性最强; (2)可以证明,所有树都能转为唯一对应的二叉树,不失一般性。
一、二叉树基础1. 二叉树的定义 二叉树是一类非常重要的树形结构,它可以递归地定义如下: 二叉树 T 是有限个结点的集合,它或者是空集,或者由一个根结点以及分别称为左 子树和右子树的两棵互不相交的二叉树。
因此,二叉树的根可以有空的左子树或空的右子树,或者左、右子树均为空。
二叉树有 5 种基本形态,如图 1 所示。
图1 二叉树的 5 种基本形态在二叉树中,每个结点至多有两个儿子,并且有左、右之分。
因此任一结点的儿子 不外 4 种情况:没有儿子;只有一个左儿子;只有一个右儿子;有一个左儿子并且有一 个右儿子。
注意:二叉树与树和有序树 的区别 二叉树与度数不超过 2 的树不同,与度数不超过 2 的有序树也不同。
在有序树中,11如果将树中结点的各子树看成从左至右是有次序的,则称该树为有序树,否则称为无序树。
-1-信息学奥赛培训之『树——二叉树』虽然一个结点的儿子之间是有左右次序的,但若该结点只有一个儿子时,就无须区分其 左右次序。
而在二叉树中,即使是一个儿子也有左右之分。
例如图 2-1 中(a)和(b)是两棵 不同的二叉树。
虽然它们与图 2-2 中的普通树(作为无序树或有序树)很相似,但它们却 不能等同于这棵普通的树。
若将这 3 棵树均看作是有序树,则它们就是相同的了。
图2-1 两棵不同的二叉树图2-2 一棵普通的树由此可见,尽管二叉树与树有许多相似之处,但二叉树不是树的特殊情形。
不是 ..2. 二叉树的性质图3 二叉树性质1: 在二叉树的第 i 层上至多有 2 i −1 结点(i>=1)。
性质2: 深度为 k 的二叉树至多有 2 k − 1 个结点(k>=1)。
性质3: 对任何一棵二叉树 T,如果其终端结点数为 n0,度为 2 的结点数为 n2,则 n0=n2+1。
二叉树
我们也可以把递归过程改成用栈实现的非递归过程,下面给出先序 遍历的非递归过程: procedure inorder(bt:tree); var stack:array[1..n] of tree; {栈} top:integer; {栈顶指针} p:tree; begin top:=0; while not ((bt=nil)and(top=0)) do begin
• ⑴如果i=1,则结点i为根,无父结点;如果i>1,则其 父结点编号为trunc(i/2)。 • ⑵如果2*i>n,则结点i为叶结点;否则左孩子编号为 2*i。 • ⑶如果2*i+1>n,则结点i无右孩子;否则右孩子编号 为2*i+1。
存储结构
• 二叉树的存储结构和普通树的存储结构基本相同,有链 式和顺序存储两种方法。 • ⑴链式存储结构:有单链表结构或双链表结构,基本数 据结构定义如下: type tree=^node;{单链表结构} node=record data:char;{数据域} lchild,rchild:tree;{指针域:分别指向左、右孩子} end; var bt:tree;
• 输入: • 其中第一行一个整数n,表示树的结点数。接下来的n行 每行描述了一个结点的状况,包含了三个整数,整数之 间用空格分隔,其中:第一个数为居民人口数;第二个 数为左链接,为0表示无链接;第三个数为右链接。 • 输出: • 只有一个整数,表示最小距离和。
• • • • • • • •
样例 输入: 5 13 2 3 4 0 0 12 4 5 20 0 0 40 0 0
2、删除二叉树 procedure dis(var bt:tree); begin if bt<>nil then begin dis(bt^.lchild); dis(bt^.rchild); dispose(bt); end; end;
数据结构PPT树和二叉树
(c)
L
R
R
(d)
(e)
(a) 空树
(b) 只含根结点
(d) 左右子树均不为空树
(c) 右子树为空树 (e) 左子树为空树
安
徽 理
6.2.2 二叉树的性质
工
大 学
性质1 在二叉树的第 i 层上至多有 2i - 1个结点。(i ≥ 1)
[证明用归纳法]
证明:当i=1时,只有根结点,2 i-1=2 0=1。
一般树和森林与二叉树的转换关系,最后介绍树的应用实
例。
安
徽 理
6.1 树的定义和基本术语
工
大 学
❖ 什么是树?树是由 n (n ≥ 0) 个结点的有限集合。如果 n
= 0,称为空树;如果 n > 0,则
▪ 有且仅有一个特定的称之为根(Root)的结点,它只有直
接后继,但没有直接前驱;
▪ 当n > 1,除根以外的其它结点划分为 m (m >0) 个互不
树构成(即不存在度大于2的结点),并且左、右子树本身也
是二叉树。 说明: 1. 二叉树中每个结点最多有两棵子 树,二叉树每个结点度小于等于2;
A
B
D
E
C F
2. 左、右子树不能颠倒——有序树;
G
3. 二叉树是递归结构,在二叉树的定
义中又用到了二叉树的概念。
安
徽 理
二叉树的形态
工
大
学
φ
L
(a)
(b)
例1. 家族族谱
设某家庭有13个成员A、B、C、D、E、F、G、H、I、J
、K、L、M,他们之间的关系可如图所示的树表示。
例2. 单位行政机构的组织关系
第五章二叉树
树为空
树为空
根的左右子 树都不空
二、二叉树的性质
第1层(根) 第2层 第3层
第4层
1、若层次从1开始,则第i层最多有2 i-1个结点 2、高度为h的二叉树最多有2h -1个结点 3、任何一棵二叉树,若叶子结点数为n0,度为2的结点数 为n2,则n0 = n2 + 1
5.2.2 二叉树的性质
二叉树具有下列重要性质: 性质1: 在二叉树的第i层上至多有2i-1个结点(i>=1)。
二叉树的二叉链表存储表示
Elem val(){return data;} void setVal(const Elem e){data=e;} inline BinTreeNode<Elem>* left(){return lchild;} inline BinTreeNode<Elem>* right(){return rchild;} void setLeft(BinTreeNode<Elem>* left){lchild=left;} void setRight(BinTreeNode<Elem>* right){rchild=right;} bool isLeaf()
Elem data; BinTreeNode * lchild; BinTreeNode * rchild; public:
BinTreeNode(){lchild=rchild=NULL;} BinTreeNode(Elem e,BinNodePtr*l=NULL,
BinNodePtr*r=NULL) {data=e; lchild=l; rchild=r;} ~BinTreeNode(){}
n0,度为2的结点数为n2,则n0=n2+1。
树与二叉树的关系
将一棵树转换为二叉树的方法: ⑴ 树中所有相邻兄弟之间加一条连线。 ⑵ 对树中的每个结点,只保留其与第一个 孩子结点之间的连线,删去其与其它孩子结 点之间的连线。 ⑶ 以树的根结点为轴心,将整棵树顺时针 旋转一定的角度,使之结构层次分明。
树转换为二叉树示意图
A
A
B
E
CF G
DH
I
A
B
E
CF G
DH
I
J
J
A
BC D EG FH I J
用递归的方法描述其转换
若B是一棵二叉树,T是B的根结点,L是B的 左子树,R为B的右子树,设B对应的森林F(B) 中含有的n棵树为T1,T2, …,Tn,则有: (1)B为空,则:F(B)为空的森林(n=0)。
(2)B非空,则:
树
森林
二叉树
先根遍历 先序遍历 先序遍历
后根遍历 中序遍历 中序遍历
3、森林的后序遍历*
若森林非空,则遍历方法为:
(1)后序遍历森林中第一棵树的根结点的子 树森林。 (2)后序遍历除去第一棵树之后剩余的树构 成的森林。 (3)访问第一棵树的根结点。
6.5 哈夫曼树及其应用
6.5.1 哈夫曼树
哈夫曼树最典型、最广泛的应用是在 编码技术上,利用哈夫曼树,可以得到 平均长度最短的编码。这在通讯领域是 极其有价值的。
权值 双亲序号 左孩子序号 右孩子序号
静态三叉链表结构定义
#define N 20 #define M 2*N-1 typedef struct { int weight ;
int parent,Lchild,Rchild ; }HTNode, HuffmanTree[M+1];
自考软件基础(数据结构--树与二叉树)
B
C
D
E
F
G
H
I
J
第 5 /209页
第二节 二叉树
一、定义
南昌大学
二叉树是一种重要的树形结构,它的特点是:二叉树可以为空(节点个
数为0),任何一个节点的度都小于或等于2,并且,子树有左、右之分,
其次序不能任意颠倒。 二叉树有5种基本形态,如图10-2所示。
第 6 /209页
第二节 二叉树
南昌大学
struct node
{ datatype data; struct node *Lchild,*rchild:
};
第 15 /209页
第二节 二叉树
南昌大学
例10-5 写出图10-8a所示二叉树的链式存储结构。其链式结构如图10-8b 所示。可以看出:具有n个节点的二叉树链式存储共有2n个链,其中只 有n-1个用来存放该节点的左、右孩子,其余的n +1个指针域为空。
解:第一步:由后序遍历结果确定整个二叉树根为A,由中序结果确定
A的左、右子树。 后序遍历结果: 中序遍历结果:
第 24 /209页
第三节 二叉树的遍历
第二步:确定A的左子树。 1)后序遍历结果:
南昌大学
中序遍历结果:
2)确定B的右子树: ①后序遍历结果:
第 25 /209页
第三节 二叉树的遍历
②中序遍历结果:
南昌大学
第 9 /209页
第二节 二叉树
下面介绍两种特殊的二叉树。
南昌大学
(1) 满二叉树指深度为k,且有2k-1个节点的二叉树。或者说除叶子节点外,
其它节点的度都为2的二叉树。
(2) 完全二叉树一个满二叉树的最下层从右向左连续缺少n (n>=0)个节点 的二叉树。 图10-3为满二叉树和完全二叉树示例。
【数据结构】二叉树
【数据结构】⼆叉树【⼆叉树】 ⼆叉树是最为简单的⼀种树形结构。
所谓树形结构,其特征(部分名词的定义就不明确给出了,毕竟不是学术⽂章。
)在于: 1. 如果是⾮空的树形结构,那么拥有⼀个唯⼀的起始节点称之为root(根节点) 2. 除了根节点外,其他节点都有且仅有⼀个“⽗节点”;除此外这些节点还都可以有0到若⼲个“⼦节点” 3. 树中的所有节点都必须可以通过根节点经过若⼲次后继操作到达 4. 节点之间不会形成循环关系,即任意⼀个节点都不可能从⾃⾝出发,经过不重复的径路再回到⾃⾝。
说明了树形结构内部蕴含着⼀种“序”,但是不是线性表那样的“全序” 5. 从树中的任意两个节点出发获取到的两个任意⼦树,要不两者⽆交集,要不其中⼀者是另⼀者的⼦集 限定到⼆叉树,⼆叉树就是任意⼀个节点⾄多只能有两个⼦节点的树形结构。
也就是说,某个节点的⼦节点数可以是0,1或2。
由于可以有两个⼦节点,所以区别两个⼦节点可以将其分别定义为左⼦节点和右⼦节点。
但是需要注意的是,若⼀个节点只有⼀个⼦节点,那么也必须明确这个⼦节点是左⼦节点还是右⼦节点。
不存在“中⼦节点”或者“单⼦节点”这种表述。
由于上述规则对所有节点都⽣效,所以⼆叉树也是⼀个递归的结构。
事实上,递归就是⼆叉树⼀个⾮常重要的特点,后⾯还会提到很多通过递归的思想来建⽴的例⼦。
对于左⼦节点作为根节点的那颗⼆叉树被称为相对本节点的左⼦树,右⼦树是同理。
■ 基本概念 空树 不包含任何节点的⼆叉树,连根节点也没有 单点树 只包含⼀个根节点的⼆叉树是单点树 ⾄于兄弟关系,⽗⼦关系,长辈后辈关系是⼀⾔既明的就不说了。
树中没有⼦节点的节点被称为树叶(节点),其余的则是分⽀节点。
⼀个节点的⼦节点个数被称为“度数”。
正如上所说,⼆叉树任意节点的度数取值可能是0,1或2。
节点与节点之间存在关联关系,这种关联关系的基本长度是1。
通过⼀个节点经过若⼲个关联关系到达另⼀个节点,经过的这些关联关系合起来被称为⼀个路径。
森林、树、二叉树的性质与关系
森林、树、⼆叉树的性质与关系森林、树、⼆叉树的性质与关系这篇博客写的太累了。
本⽂中对于这部分的讲解没有提到的部分:对于⼆叉树的遍历:重点讲了⾮递归遍历的实现⽅式和代码(递归⽅法使⽤的相对较多,请直接参考博客代码)对于哈夫曼编码和线索⼆叉树的代码实现没有列出。
树我们对于树和⼆叉树这⼀部分的内容主要研究树的逻辑结构和存储结构,由于计算机的特殊性存储结构及⼆叉树的简单性,我们更主要讨论⼆叉树的逻辑结构和存储结构并对其进⾏实现(其中包含⼆叉树的⼀些重要性质),另外我们在研究这⼀类问题时,⾸先要考虑到树与森林之间的转换,以及树与⼆叉树之间的转换。
从⽽简化为最简单的⼆叉树问题。
知识体系结构图:树的定义:(采⽤递归⽅法去定义树)树:n(n≥0)个结点的有限集合。
当n=0时,称为空树;任意⼀棵⾮空树满⾜以下条件:(1)有且仅有⼀个特定的称为根的结点;(2)当n>1时,除根结点之外的其余结点被分成m(m>0)个互不相交的有限集合T1,T2,… ,Tm,其中每个集合⼜是⼀棵树,并称为这个根结点的⼦树。
(⽤图的定义法去描述树:连通⽽不含回路的⽆向图称为⽆向树,简称树,常⽤T表⽰树)树的基本术语:结点的度:结点所拥有的⼦树的个数。
树的度:树中各结点度的最⼤值。
叶⼦结点:度为0的结点,也称为终端结点。
分⽀结点:度不为0的结点,也称为⾮终端结点。
孩⼦、双亲:树中某结点⼦树的根结点称为这个结点的孩⼦结点,这个结点称为它孩⼦结点的双亲结点;兄弟:具有同⼀个双亲的孩⼦结点互称为兄弟。
祖先、⼦孙:在树中,如果有⼀条路径从结点x到结点y,那么x就称为y的祖先,⽽y称为x的⼦孙。
路径:如果树的结点序列n1, n2, …, nk有如下关系:结点ni是ni+1的双亲(1<=i<k),则把n1, n2, …, nk称为⼀条由n1⾄nk的路径;路径上经过的边的个数称为路径长度。
结点所在层数:根结点的层数为1;对其余任何结点,若某结点在第k层,则其孩⼦结点在第k+1层。
树转为二叉树的方法:PPT课件
01 d
01
i 01
a
n
Huffman编码结果:d=0, i=10, a=110, n=111 特点W:PL每=一1b码it都×不7+是2另bi一t×码5的+3前b缀it(,2+绝4不)=会35错译! 称为前缀码
2021/3/12
8
霍夫曼编码的基本思想是:概率大的字符用短码,概率小的用
21 32 28 g e0 1
17
11
e 10 0.32 e 100 0.32
01 0 1
f 11111 0.03 f 101 0.03 g 01 0.21 g 110 0.21
7 a
10 h
65 d0 1
h 1101 0.10 h 111 0.10
2 3f
c
Huffman码的WPL=2(0.19+0.32+0.21) + 4(0.07+0.06+0.10) +5(0.02+0.03)
长码。由于霍夫曼树的WPL最小,说明编码所需要的比特数最
少。这种编码已广泛应用于网络通信中。
例2(严题集6.26③):假设用于通信的电文仅由8个字母 {a,
b, c, d, e, f, g, h} 构成,它们在电文中出现的概率分别为 { 0.07, 0.19, 0.02, 0.06, 0.32, 0.03, 0.21, 0.10},试为这8 个字母设计哈夫曼编码。如果用0~7的二进制编码方案又如何?
第6章 树和二叉树( Tree & Binary Tree )
6.1 树的基本概念 6.2 二叉树 6.3 遍历二叉树和线索二叉树 6.4 树和森林 6.5 赫夫曼树及其应用
数据结构 第六章 树和二叉树
F
G
H
M
I
J
结点F,G为堂兄弟 结点A是结点F,G的祖先
5
树的基本操作
树的应用很广,应用不同基本操作也不同。下面列举了树的一些基本操作: 1)InitTree(&T); 2)DestroyTree(&T); 3)CreateTree(&T, definition); 4)ClearTree(&T); 5)TreeEmpty(T); 6)TreeDepth(T); 7) Root(T); 8) Value(T, &cur_e); 9) Assign(T, cur_e, value); 10)Paret(T, cur_e); 11)LeftChild(T, cur_e); 12)RightSibling(T, cur_e); 13)InsertChild(&T, &p, i, c); 14)DeleteChild(&T,&p, i); 15)TraverseTree(T, Visit( ));
1
2 4 8 9 10 5 11 12 6 13 14 3 7 15 4 6 2
1
3
5 7
证明:设二叉树中度为1的结点个数为n1 根据二叉树的定义可知,该二叉树的结点数n=n0+n1+n2
又因为在二叉树中,度为0的结点没有孩子,度为1的结点有1 个孩子,度为2的结点有2个结孩子,故该二叉树的孩子结点 数为 n0*0+n1*1+n2*2(分支数) 而一棵二叉树中,除根结点外所有都为孩子结点,故该二叉 树的结点数应为孩子结点数加1即:n=n0*0+n1*1+n2*2+1
文件夹1
文件夹n
树1
有何特征?
2.二叉树
2)从一棵二叉树到树的转换规则是: (1)若结点X是双亲Y的左孩子,则把X的右孩子,右孩子的右孩 子…都与Y用连线相连; (2)去掉原有的双亲到右孩子的连线。
2.二叉树
3) 树和二叉树间的转换实例
2.二叉树
2.6 二叉树的性质
性质1:在二叉树的第i层上至多有2i-1个结点(i≥1)。 证明:可用数学归纳法予以证明。 当i=1时有2i-1=20=1,同时第一层上只有一个根结点,故命题成立。 设当i=k时成立,即第k层上至多有2k-1个结点。 当i=k+1时,由于二叉树的每个结点至多有两个孩子,所以第k+1层 上至多有22k-1=2k个结点,故命题成立。
1.树的基本概念
结点的层次:从根结点开始,根结点为第一 层,根的孩子为第二层,根的孩子的孩子为 第三层,依次类推。 如:结点M的层次为4。 树的深度:树中结点的最大层次数。 如:该树的深度为4。 堂兄弟:双亲在同一层上的结点互称为堂兄 弟。 例如结点E,G,H互为堂兄弟。 路径:若存在一个结点序列k1,k2,…,kj, 可 使k1到达kj, 则称这个结序序列是k1到达kj 的一条路径。
树的引入
树的引入
树与线性表的逻辑特征比较
线性表是一种线性结构
线性结构的逻辑特征是:有且仅有一个开始结点和一个 终端结点,且所有结点都最多只有一个直接前趋和一个 直接后继。
树是一种非线性结构
非线性结构的逻辑特征是一个结点可能有多个直接前趋 和直接后继。
结构特征
线性表 树 线性结构 非线性结构
直接前趋个数
1.树的基本概念
1.2树的直观表示形式
(1)直观表示法
使用圆圈表示结点,连线表示结点间的关系,结点的名字可写在圆 圈内或圆圈旁
树,二叉树,森林
二叉树
二叉树性质(续) ② 高度为k的二叉树最多有2k-1个结点(k≥1) 证明:
高度为k的二叉树只有在每一层都达到最大结点数时,整个二叉树的结点数 才能达到最大。即当每层的结点数目都达到该层的最大结点数2i-1时(性质 2),对应的二叉树的结点数目取得最大值(等比数列求和) a1(1-qn)/(1-q)
因此如果把完全二叉树的各个结点按编号顺序依次存放到一个一维数组, 对于完全二叉树中任意结点i的双亲结点序号、左孩子结点序号和右孩子 结点序号都可由公式计算得到,具体做法是将n个结点存放到一维数组 a[n+1]中。这便是完全二叉树的顺序存储。
二叉树
带有结点编号的完全二叉树
二叉树
对于非完全二叉树是构造虚结点完成顺序存储
树的基本概念
A B E K L F C G H M D I J
back
树的基本概念
3、树的表示方法 (4种)
树形表示 文氏图表示 凹入表示
嵌套括号表示
A(B,C(D,E))
二叉树
二叉树是树型结构的一个重要类型,许多实际问题抽象 出来的数据结构都是二叉树的形式,此外一般的树也可以 简单的转换为二叉树,因此二叉树是特别重要的一种树结 构。 1、二叉树的定义: 二叉树(Binary Tree)是n(n≥0)个有限结点构成、 每个结点最多有两个孩子且有左右区分的有序树合。 n=0的树称为空二叉树;n>0的二叉树由一个根结点 和两个互不相交的、分别称作左子树和右子树的子二叉树 构成。
树、森林和二叉树的关系
树、森林和二叉树的关系
孩子兄弟表示法(二叉链表表示法): 链表中每个结点设有两个链域,分别指向该结点的第一个孩 子结点和下一个兄弟(右兄弟)结点。
树、森林和二叉树的关系
数据结构(树与图部分)练习题
数据结构(树与图部分)练习题数据结构(树与图部分)练习题⼀、填空题1.不考虑顺序的3个结点可构成种不同形态的树,种不同形态的⼆叉树。
2.已知某棵完全⼆叉树的第4层有5个结点,则该完全⼆叉树叶⼦结点的总数为:。
3.已知⼀棵完全⼆叉树的第5层有3个结点,其叶⼦结点数是。
4.⼀棵具有110个结点的完全⼆叉树,若i=54,则结点i的双亲编号是;结点i的左孩⼦结点的编号是,结点i的右孩⼦结点的编号是。
5.⼀棵具有48个结点的完全⼆叉树,若i=20,则结点i的双亲编号是______;结点i的左孩⼦结点编号是______,右孩⼦结点编号是______。
6.在有n个叶⼦结点的Huffman树中,总的结点数是:______。
7.图是⼀种⾮线性数据结构,它由两个集合V(G)和E(G)组成,V(G)是______的⾮空有限集合,E(G)是______的有限集合。
8.遍历图的基本⽅法有优先搜索和优先搜索两种⽅法。
9.图的遍历基本⽅法中是⼀个递归过程。
10.n个顶点的有向图最多有条弧;n个顶点的⽆向图最多有条边。
11.在⼆叉树的⼆叉链表中,判断某指针p所指结点是叶⼦结点的条件是。
12.在⽆向图G的邻接矩阵A中,若A[i,j]等于1,则A[j,i]等于。
⼆、单项选择题1.树型结构的特点是:任意⼀个结点:()A、可以有多个直接前趋B、可以有多个直接后继C、⾄少有1个前趋D、只有⼀个后继2.如下图所⽰的4棵⼆叉树中,()不是完全⼆叉树。
3.深度为5的⼆叉树⾄多有()个结点。
A、16B、32C、31D、104.64个结点的完全⼆叉树的深度为:()。
A、8B、7C、6D、55.将⼀棵有100个结点的完全⼆叉树从根这⼀层开始,每⼀层从左到右依次对结点进⾏编号,根结点编号为1,则编号为49的结点的左孩⼦的编号为:()。
A、98B、99C、50D、486.在⼀个⽆向图中,所有顶点的度之和等于边数的()倍。
A、1/2B、1C、2D、47.设有13个值,⽤它们组成⼀棵Huffman树,则该Huffman树中共有( )个结点。
计算机11数据结构复习题
1. 1. 数据结构是一门研究非数值计算的程序设计问题中计算机的数据结构是一门研究非数值计算的程序设计问题中计算机的 操作对象操作对象操作对象 以及它们之以及它们之间的间的 关系关系关系 和运算等的学科。
和运算等的学科。
和运算等的学科。
2. 2. 数据结构被形式地定义为数据结构被形式地定义为(D, R ),其中D 是 数据元素数据元素数据元素 的有限集合,的有限集合,R 是D 上的上的 关关系 有限集合。
有限集合。
有限集合。
3. 3. 数据结构包括数据的数据结构包括数据的数据结构包括数据的 逻辑结构逻辑结构逻辑结构 、、数据的数据的 存储结构存储结构 和数据的和数据的和数据的 运算运算运算 这三个方面这三个方面的内容。
的内容。
4. 4. 数据结构按逻辑结构可分为两大类,它们分别是数据结构按逻辑结构可分为两大类,它们分别是数据结构按逻辑结构可分为两大类,它们分别是 线性结构线性结构线性结构 和和 非线性结构非线性结构非线性结构 。
5.5.有有n 个球队参加的足球联赛按主客场制进行比赛,共需进行n(n-1)n(n-1)场比赛。
场比赛。
场比赛。
参考答案:参考答案: n(n-1) n(n-1)6.6.一棵树的前根遍历序列为一棵树的前根遍历序列为EFHIGJK EFHIGJK,后根遍历序列为,后根遍历序列为HFIEJKG HFIEJKG,将树转换成二叉树形式后,,将树转换成二叉树形式后,该二叉树的后序遍历序列为HIFKJGE HIFKJGE。
5. 5. 线性结构中元素之间存在一对一关系,线性结构中元素之间存在一对一关系,线性结构中元素之间存在一对一关系,树形结构中元素之间存在一对多关系,树形结构中元素之间存在一对多关系,树形结构中元素之间存在一对多关系,图形结构中图形结构中元素之间存在多对多关系。
元素之间存在多对多关系。
6. 在线性结构中,第一个结点在线性结构中,第一个结点 没有没有没有 前驱结点,其余每个结点有且只有前驱结点,其余每个结点有且只有 1 1个前驱结点;最后一个结点最后一个结点 没有没有没有 后续结点,其余每个结点有且只有后续结点,其余每个结点有且只有1个后续结点。