树是一类重要的非线性数据结构树形结构是以分支关系来定义的层次(精)
- 格式:ppt
- 大小:607.50 KB
- 文档页数:71
树状的总结1. 引言在计算机科学和信息管理领域中,树状结构(Tree)是一种常见且重要的数据结构。
树的结构类似于现实生活中的树,具有分支和节点的层级关系。
树状结构具有广泛的应用,例如数据库索引、文件系统、网络路由等。
本文将对树的概念、特点以及常见的应用进行总结和介绍。
2. 树的基本概念树是由节点(Node)和边(Edge)组成的一种非线性数据结构。
树中有一个特殊的节点称为根节点(Root),根节点没有父节点,其他节点都有一个父节点。
在一个树中,每个节点都可以有零个或多个子节点,节点之间通过边连接。
树状结构的特点包括: - 根节点:树的入口,唯一的起点。
- 父节点:每个节点都有一个父节点,除了根节点。
- 子节点:父节点下的节点称为子节点。
- 叶子节点:没有子节点的节点称为叶子节点。
- 节点间的关系:节点之间通过边连接,形成层级结构。
树可以用图形表示,例如下面这个简单的示例树:A/ \\B C/ \\ / \\D E F G在这个示例中,根节点是A,它有两个子节点B和C。
B节点有两个子节点D和E,C节点有两个子节点F和G。
节点D、E、F、G都是叶子节点,它们没有子节点。
3. 树的常见应用树状结构在计算机科学和信息管理领域中有广泛的应用,以下是一些常见的应用示例:3.1 数据库索引在数据库中,树状结构被广泛应用于索引。
数据库使用树状结构来加速数据的检索和查询操作。
常见的数据库索引结构包括B树(B-Tree)、B+树(B+ Tree)、红黑树(Red-Black Tree)等。
通过使用树索引,数据库可以快速定位和访问数据,提高查询效率。
3.2 文件系统文件系统通常使用树状结构来组织和管理文件和目录。
树的根节点代表文件系统的根目录(例如:C:\)。
每个子目录都是一个节点,子目录之间通过边连接。
通过树的结构,文件系统可以方便地浏览和管理文件和目录。
常见的文件系统包括Windows中的NTFS、Linux中的EXT4等。
1 . 以下说法正确的是()A . 二叉树的特点是每个结点至多只有两棵子树。
B . 二叉树的子树无左右之分。
C . 二叉树只能进行链式存储。
D . 树的结点包含一个数据元素及若干指向其子树的分支。
答案:A,D解析:2 . 算法设计的要求包括____。
A . 正确性B . 可读性C . 健壮性D . 确定性答案:A,B,C解析:“确定性”属于算法特性而非要求。
3 . 下列属于算法的重要特征的是:A . 有穷性B . 确定性C . 可行性D . 输入和输出答案:A,B,C,D解析: ABCD4 . 图的四中存储结构A . 邻接矩阵B . 邻接表C . 邻接多重表D . 十字链表答案:A,B,C,D解析:5 . 依据所有数据成员之间的逻辑关系的不同,数据结构分为()A . 非线性结构B . 逻辑结构C . 物理结构D . 线性结构答案:A,D解析:6 . 图的应用算法有()A . 克鲁斯卡尔算法B . 哈弗曼算法C . 迪杰斯特拉算法D . 拓扑排序算法答案:A,C,D解析:7 . 计算机算法必须具备________________等特性。
A . 可行性、确定性B . 可行性、可移植性C . 输入、输出D . 有穷性E . 易读性F . 稳定性答案:A,C,D解析:8 . 下列数据结构中,属于线性数据结构的是____A . 栈B . 队列C . 树D . 图答案:A,B解析:9 . 下列说法正确的有:A . 算法和程序原则上没有区别,在讨论数据结构时二者通用B . 从逻辑关系上讲,数据结构分为两大类:线性结构和非线性结构C . 所谓数据的逻辑结构是指数据元素之间的逻辑关系D . 同一数据逻辑结构中的所有数据元素都具有相同的特性是指数据元素所包含的数据项的个数相等E . 数据的逻辑结构与数据元素本身的内容和形式无关F . 数据结构是指相互之间存在一种或多种关系的数据元素的全体答案:B,C,E解析:10 . 线性表的特点正确的()A . 存在唯一的一个被称作”第一个“的数据元素。
四、树型结构线性表、栈和队列等数据结构所表达和处理的数据以线性结构为组织形式。
然⽽,在计算机科学和计算机应⽤的各个领域中,存在着⼤量需要⽤更复杂的逻辑结构加以表⽰的问题。
因此必须研究更复杂的逻辑结构及相应的数据结构。
树形结构就是这些更复杂的结构中最重要的⼀类。
1.树的基本概念树是⼀类重要的树形结构,其定义如下:树是n(n>0)个结点的有穷集合,满⾜:(1)有且仅有⼀个称为根的结点;(2)其余结点分为m(m≥0)个互不相交的⾮空集合,T 1 ,T 2 ,…,T m ,这些集合中的每⼀个都是⼀棵树,称为根的⼦树。
在树上,根结点没有直接前趋。
对树上任⼀结点X来说,X是它的任⼀⼦树的根结点惟⼀的直接前趋。
为了讨论⽅便,我们引⼊树的若⼲习惯术语。
树上任⼀结点所拥有的⼦树的数⽬称为该结点的度。
度为0的结点称为叶⼦或终端结点。
度⼤于0的结点称为⾮终端结点或分⽀点。
⼀棵树中所有结点的度的值称为该树的度。
若树中结点A是结点B的直接前趋,则称A为B的双亲或⽗结点,称B为A的孩⼦(即“⼦⼥”)或⼦结点。
易知任何结点A的孩⼦B也就是A的⼀棵⼦树的根结点,⽗结点相同的结点互称为兄弟。
⼀棵树上的任何结点(不包括根本⾝)称为根的⼦孙。
反之若B是A的⼦孙,则称A是B的祖先,结点的层数(或深度)从根开始算起:根的层数为1,其余结点的层数为其双亲的层数加1。
⼀棵树中所有结点层数的值称为该树的⾼度或深度。
树(及⼀切树形结构)是⼀种“分⽀层次”结构。
所谓“分⽀”是指树中任⼀结点的⼦孙可以按它们所在的⼦树的不同⽽划分成不同的“分⽀”;所谓“层次”是指树上所有结点可以按它们的层数划分不同的“层次”。
在实际应⽤中,树中的⼀个结点可⽤来存储实际问题中的⼀个数据元素,⽽结点间的逻辑关系(即⽗结点与⼦结点之间的邻接关系)往往⽤来表⽰数据元素之间的某种重要的、必须加以表达的关系。
⽤图⽰法表⽰任何树形结构时,箭头的⽅向总是从上到下,即从⽗结点指向⼦结点,因此,可以简单地⽤连线代替箭头。
第7章树和森林树形结构是一类重要的非线性结构。
树形结构的特点是结点之间具有层次关系。
本章介绍树的定义、存储结构、树的遍历方法、树和森林与二叉树之间的转换以及树的应用等内容。
重点提示:●树的存储结构●树的遍历●树和森林与二叉树之间的转换7-1 重点难点指导7-1-1 相关术语1.树的定义:树是n(n>=0)个结点的有限集T,T为空时称为空树,否则它满足如下两个条件:①有且仅有一个特定的称为根的结点;②其余的结点可分为m(m>=0)个互不相交的子集T1,T2,…,T m,其中每个子集本身又是一棵树,并称为根的子树。
要点:树是一种递归的数据结构。
2.结点的度:一个结点拥有的子树数称为该结点的度。
3.树的度:一棵树的度指该树中结点的最大度数。
如图7-1所示的树为3度树。
4.分支结点:度大于0的结点为分支结点或非终端结点。
如结点a、b、c、d。
5.叶子结点:度为0的结点为叶子结点或终端结点。
如e、f、g、h、i。
6.结点的层数:树是一种层次结构,根结点为第一层,根结点的孩子结点为第二层,…依次类推,可得到每一结点的层次。
7.兄弟结点:具有同一父亲的结点为兄弟结点。
如b、c、d;e、f;h、i。
8.树的深度:树中结点的最大层数称为树的深度或高度。
9.有序树:若将树中每个结点的子树看成从左到右有次序的(即不能互换),则称该树为有序树,否则称为无序树。
10.森林:是m棵互不相交的树的集合。
7-1-2 树的存储结构1.双亲链表表示法以图7-1所示的树为例。
(1)存储思想:因为树中每个元素的双亲是惟一的,因此对每个元素,将其值和一个指向双亲的指针parent构成一个元素的结点,再将这些结点存储在向量中。
(2)存储示意图:-1 data:parent:(3)注意: Parrent域存储其双亲结点的存储下标,而不是存放结点值。
下面的存储是不正确的:-1 data:parent:2.孩子链表表示法(1)存储思想:将每个数据元素的孩子拉成一个链表,链表的头指针与该元素的值存储为一个结点,树中各结点顺序存储起来,一般根结点的存储号为0。
《数据结构》模拟题一、填空题1、循环单链表可作线性表的存储结构.2、队列操作的原则是先进先出。
3、设计一个判定表达式中左,右括号是否配对出现的算法,采用栈数据结构醉佳.4、顺序栈存储空间的实现使用数组存储栈元素.5、数据项是数据的不可分割的醉小单位.6、线性表是醉常用且醉简单的一种数据结构,是n个数据元素的有限序列.7、广义表是由零或多个原子或子表所组成的有限序列。
8、树型结构是一类重要的非线性数据结构,树是以分支关系定义的层次结构.9、算法的时间复杂度是指算法中语句重复执行的次数的总和。
10、如果线性表醉常用的操作是存取第i个元素及其前驱的值,则采用顺序表方式存储节省时间.二、单项选择题1.线性表在(B)时,宜用顺序表作存储结构.A.经常作插入,删除B.经常随机存取C.无足够连续存储空间D.经常作动态查找2.一棵左右子树均不空的二叉树在先序线索化后,其空指针域数为( B )A.0B.1C.2D.不确定3.串的长度是( C ).A.串中不同字母的个数B.串中不同字符的个数C.串中所含字符的个数D.串中所含字符的个数,且大于04.链表不具有的特点是( A ).A.可随机访问任一元素B.插入删除不需要移动元素C.不必事先考虑存储空间D.所需空间与线性表长度成正比5.对长度为10的表作选择(简单选择)排序,共需比较( A )次关键字.A.45B.90C.10D.1106.关于线性表,下列说法正确的是( D ).A.每个元素都有一个直接前驱和直接后继B.线性表中至少要有2个元素C.表中元素必须排序D.除第yi个和醉后一个元素外,其余每个元素都有一个且仅有一个直接前驱和直接后继7.设栈的输入序列是(1,2,3,4),则( C )不可能是其出栈序列.A.1234B.2134C.4312D.32148.两个串相等的判定条件是( D ).A.串为空B.串中各位置对应字符相等C.串长度相等D.串长度相等并且串中各位置对应字符相等9.若7行6列的数组a以列序为主序顺序存储,基地址为1024,每个元素占2个存储单元,则第3行第5列的元素(假定无第0行第0列)的存储地址是( C )A.1100B.1086C.1084D.以上都不对10.若进队列的序列为1,2,3,4,则( A )是一个出队列序列.A.1234B.4321C.4312D.321411.若用一个大小为6的数组来实现循环队列,且当rear和front的值分别为0和3.当从队列中删除一个元素,再加入两个元素后,rear和front的值分别为( B ).A.1和5B.2和4C.4和2D.5和112.树醉适合用来表示( C ).A.有序数据元素B.无序数据元素C.元素之间具有分支层次关系的数据D.元素之间无联系的数据13.设语句s=s+i的时间是时间单位,则语句:s=0;for(i=1;i<=n;i++)s=s+i;的时间复杂度为( B ).A.O(1)B.O(n)C.O(n2)D.O(log2n)14.数据表A中有10000个元素,如果仅要求求出其中醉大的10个元素,则采用( C )排序算法醉节省时间.A.堆排序B.希尔排序C.快速排序D.直接选择排序15.数组A中,每个元素的长度为3个字节,行下标i从1到5,列下标j从1到4,从首地址SA开始连续存放在存储器内,该数组占用的字节数为( B ).A.20B.60C.80D.12016.二叉树在线索化后,仍不能有效求解的问题是( D )A.先序线索二叉树中求先序后继B.中序线索二叉树中求中序后继C.中序线索二叉树中求中序前趋D.后序线索二叉树中求后序后继17.为了方便对图状结构的数据进行存取操作,则其中数据存储结构宜采用( B ).A.顺序存储B.链式存储C.索引存储D.散列存储18.下列有关二叉树的说法正确的是( B ).A.二叉树的度为2B.一棵二叉树度可以小于2C.二叉树中至少有一个结点的度为2D.都不对19.循环队列中元素数目是( C )?其中tail=32,指向队尾元素,head=15指向对头元素的前一个空位置,队列空间m=60.A.42B.16C.17D.4120.一颗非空的二叉树的先序遍历序列与后序遍历序列正好相反,则该二叉树一定满足( A ).A.只有一个叶子结点B.所有的结点均无左孩子C.左右的结点均无右孩子D.是任意一颗二叉树21.线性表的静态链表存储结构与顺序存储结构相比优点是( B )A.便于随机存取B.便于插入和删除C.便于利用零散的存储器空间D.所有的操作算法实现简单22.若用单链表来表示队列,则应该选用( D ).A.带头指针的非循环链表B.带尾指针的非循环链表C.带头指针的循环链表D.带尾指针的循环链表23.串是任意有限个( D ).A.符号构成的xxxB.符号构成的序列C.字符构成的xxxD.字符构成的序列24.下列排序算法中,某一趟结束后未必能选出一个元素放在其醉终位置上的是( D )A.堆排序B.冒泡排序C.快速排序D.直接插入排序25.已知一颗二叉树的后序遍历序列为DABEC,中序遍历序列为DEBAC,则它的先序遍历序列为( D ).A.ACBEDB.DECABC.DEABCD.CEDBA26.广义表A=(a,b,(c,d),(e,(f,g))),则下面式子的值为( D ).Head(Tail(Head(Tail(Tail(A))))).A.(g)B.(d)C.cD.d27.将一个A[1..10,1..10]的三对角矩阵,按行优先存入一维数组B[1,30]中,A中元素a6,5在B数组中的位置i为( A ).A.15B.16C.55D.5628.两个指针p和q,分别指向单链表的两个元素,p所指元素是q所指元素的前驱,则( D ).A.p==qB.q->next=pC.p->next=q->nextD.p->next=q29.若串s="hello",其子串个数是( B ).A.5B.15C.16D.2530.若某链表醉常用的操作是在醉后一个结点之后插入一个结点和删除醉后一个结点,则采用( C )存储方式醉节省时间.A.单链表B.双链表C.带头结点的双循环链表D.单循环链表31.若长度为n的线性表采用顺序存储结构,在其第i个位置插入一个新元素算法的时间复杂度为( B ).A.O(1)B.O(n)C.O(n2)D.O(log2n)32.设循环队列中数组的下标范围是1~n,其头尾指针分别为f和r,则其元素个数为( D )A.r-fB.r-f+1C.(r-f)modn+1D.(r-f+n)modn33.对有18个元素的有序表作二分(折半)查找,则查找A[3]的比较序列的下标为( D ).A.1,2,3B.9,5,2,3C.9,5,3D.9,4,2,334.数据结构包含四种基本结构,它们是( C ).A.xxx,链表,树,队列B.队列,链表,数组,图C.xxx,线性,树,图D.线性,链表,队列,xxx35.数组A中,每个元素的长度为4个字节,行下标i从1到5,列下标j从1到4,从首地址SA开始连续存放在存储器内,该数组按行存放时,元素A[3][2]的起始地址为( C ).A.SA+5B.SA+10C.SA+36D.SA+4036.算法必须具备的5个特征是:输入,输出,( B ).A.可执行性,可移植性和可扩充性B.可执行性,有穷性和确定性C.有穷性,稳定性和确定性D.稳定性,易读性和确定性37.稀疏矩阵一般的压缩存储方法有( D )两种.A.二维数组和三维数组B.二维数组和三元组C.三维数组和十字链表D.三元组和十字链表38.线性表采用链式存储时,其地址( C ).A.必须是连续的B.一定是不连续的C.连续与否均可以D.部分地址必须是连续的39.一个n*n的对称矩阵,如果以行或列为主序放入内存,则其容量为( C ).A.n*nB.n*n/2C.n*(n+1)/2D.(n+1)*(n+1)/240.已知一个顺序存储的线性表,设每个结点需占m个存储单元,若第yi个结点的地址为d1,则第i个结点的地址为( A ).A.d1+(i-1)*mB.d1+i*mC.d1-i*mD.d1+(i+1)m三、判断题1.在二叉排序树上删除一个结点时,不必移动其他结点,只要将该结点的父结点的相应指针域置空即可.(错)2.从具有n个结点的二叉排序树中查找一个元素时,醉坏情况下的时间复杂度为O(n).(对)3.广义表中原子个数即为广义表的长度(错)4.空栈就是所有元素都为0的栈.(错)5.栈和队列都是限制存取点的线性结构(对)6.数据元素是数据的醉小单位.(错)7.顺序存储结构属于静态结构,链式结构属于动态结构.(对)8.线性表采用链表存储时,结点和结点内部的存储空间可以是不连续的.(错)9.有回路的图不能进行拓扑排序.(对)10.在所有结点的权都相等的情况下,具有平衡特性的二叉排序树一定是醉佳二叉排序树.(对)11.数据项是数据的基本单位.(错)12.广义表是线性表的推广,是一类线性数据结构.(错)13.哈希表的查找效率主要取决于哈希表造表时选取的哈希函数和处理冲突的方法.(对)14.邻接表只能用于存储有向图,而邻接矩阵则可存储有向图和无向图.(错)15.数据的物理结构是指数据在计算机内实际的存储形式.(对)16.顺序查找法适用于存储结构为顺序或链接存储的线性表.(对)17.完全二叉树中,若一个结点没有左孩子,则它必是树叶.(对)18.一个图的广度优先搜索树是唯一的.(错)19.在单链表中,要访问某个结点,只要知道该结点的指针即可;因此,单链表是一种随机存取结构.(错)20.在线性表的顺序存储结构中,插入和删除元素时,移动元素的个数与该元素的位置有关.(对)四、名词解释1.串[答案]:串是有零个或多个字符组成的优先序列.2.关键字[答案]:关键字是数据元素中某个数据项的值,用它可以标识一个数据元素或记录.3.数据项,记录和文件.[答案]:一个元素可以有若干个数据项组成,通常把数据元素称为记录,含有大量记录的线性表称为文件.4.内部排序方法[答案]:直接插入,折半插入,2-路插入,表插入,希尔排序,起泡排序,快速排序,选择排序,树形排序,堆排序,归并,基数.任选5个.5.队列[答案]:队列也是线性表,它是操作受限制的线性表,队列是先进先出表.6.图[答案]:图形结构中,结点之间的关系可以是任意的,图中任意两个数据元素之间都可能相关.7.数组[答案]:数组在内存中占据连续的存储单元,其数组元素具有相同的名字和类型.8.栈[答案]:栈也是线性表,它是操作受限制的线性表,栈是后进先出表.9.二叉树[答案]:二叉树的每个结点至多只有两棵子树,并且,二叉树的子树有左右之分,其次序不能任意颠倒.10.数据结构[答案]:数据结构是相互之间存在一种或多种特定关系的数据元素的xxx.。
2022-2023年国家电网招聘《电网计算机》考前冲刺卷I(答案解析)全文为Word可编辑,若为PDF皆为盗版,请谨慎购买!第I卷一.综合考点题库(共50题)1.正数18的二进制形式的补码为()。
A.11101101B.11101110C.00010010D.00010011正确答案:C本题解析:十进制正数的补码等于原码。
可以采用除2取余数法,即每次将整数部分除以2,取余数,商继续除以2,直到商为0为止,最后读数时将所有余数倒序排列即为与该十进制数等值的二进制形式的补码。
2.在CPU的寄存器中,()对用户是透明的。
A.程序计数器B.状态寄存器C.指令寄存器D.通用寄存器正确答案:C本题解析:指令寄存器中存放当前执行的指令,不需要用户的任何干预,所以对用户是透明的。
其他三种寄存器的内容可由程序员指定。
3.下列功能中,属于OSI参考模型中的表示层提供的是()。
A.交互管理B.透明传输C.死锁管理D.文本压缩正确答案:D本题解析:表示层对上层数据或信息进行变换以保证一个主机应用层信息可以被另一个主机的应用程序理解。
4.微型计算机中,主机和高速磁盘交换数据适合采用()方式。
A.程序查询控制B.程序中断控制C.直接存储器存取(DMA)D.通道控制正确答案:C本题解析:由于磁盘是高速设备,而程序控制方式(程序查询方式和程序中断方式)下,数据传送需要CPU的干预,这样会占用大量的CPU时间,甚至可能CPU时间全部用于数据传送都不能满足磁盘数据交换的要求;而通道控制方式一般见于大中型计算机中,微型机中基本不采用。
5.CSMA/CD方法用来解决多结点如何共享共用总线传输介质的问题,在采用CSMA/CD的网络中()。
A.不存在集中控制的结点B.存在一个集中控制的结点C.存在多个集中控制的结点D.可以有也可以没有集中控制的结点正确答案:A本题解析:CSMA/CD属于随机访问介质访问控制方式,特点是用户可以随机地发送信息。
树是一种重要的非线性数据结构,直观地看,它是数据元素(在树中称为结点)按分支关系组织起来的结构,很象自然界中的树那样。
树结构在客观世界中广泛存在,如人类社会的族谱和各种社会组织机构都可用树形象表示。
树在计算机领域中也得到广泛应用,如在编译源程序如下时,可用树表示源源程序如下的语法结构。
又如在数据库系统中,树型结构也是信息的重要组织形式之一。
一切具有层次关系的问题都可用树来描述。
一、树的概述树结构的特点是:它的每一个结点都可以有不止一个直接后继,除根结点外的所有结点都有且只有一个直接前趋。
以下具体地给出树的定义及树的数据结构表示。
(一)树的定义树是由一个或多个结点组成的有限集合,其中:⒈必有一个特定的称为根(ROOT)的结点;⒉剩下的结点被分成n>=0个互不相交的集合T1、T2、......Tn,而且,这些集合的每一个又都是树。
树T1、T2、......Tn被称作根的子树(Subtree)。
树的递归定义如下:(1)至少有一个结点(称为根)(2)其它是互不相交的子树1.树的度——也即是宽度,简单地说,就是结点的分支数。
以组成该树各结点中最大的度作为该树的度,如上图的树,其度为3;树中度为零的结点称为叶结点或终端结点。
树中度不为零的结点称为分枝结点或非终端结点。
除根结点外的分枝结点统称为内部结点。
2.树的深度——组成该树各结点的最大层次,如上图,其深度为4;3.森林——指若干棵互不相交的树的集合,如上图,去掉根结点A,其原来的二棵子树T1、T2、T3的集合{T1,T2,T3}就为森林;4.有序树——指树中同层结点从左到右有次序排列,它们之间的次序不能互换,这样的树称为有序树,否则称为无序树。
5.树的表示树的表示方法有许多,常用的方法是用括号:先将根结点放入一对圆括号中,然后把它的子树由左至右的顺序放入括号中,而对子树也采用同样的方法处理;同层子树与它的根结点用圆括号括起来,同层子树之间用逗号隔开,最后用闭括号括起来。