数据结构-复习资料
数据结构复习资料(亲自整理)

数据结构复习资料(亲自整理)1、链表是一种存储数据的链式结构,每个数据之间都是相关联的。
2、线性结构是一个有序数据元素的集合,包括线性表、栈、队列、双队列、数组和串。
3、树是由n(n>=1)个有限节点组成一个具有层次关系的集合,而二叉树是每个结点最多有两个子树的有序树。
二叉树与树的主要差别在于,二叉树结点的最大度数为2,而树中结点的最大度数没有限制;二叉树的结点有左、右之分,而树的结点无左、右之分。
4、堆是一种可以被看做一棵树的数组对象,总是满足某个节点的值总是不大于或不小于其父节点的值,且堆总是一棵完全二叉树。
5、二叉排序树是一种满足以下递归定义的二叉树:若左子树非空,则左子树所有节点的值均小于它的根节点;若右子树非空,则右子树所有节点的值均大于于它的根节点;左右子树也分别为二叉排序树。
1、在已知前序遍历和中序遍历的情况下,可以通过画树的方法求得后序遍历。
具体步骤如下:首先根据前序遍历的特点,确定根节点;然后观察中序遍历,将左子树和右子树分别确定下来;接着对左子树和右子树分别进行递归,直到遍历完所有节点,最后得到后序遍历。
2、树和二叉树之间可以相互转换。
将树转换为二叉树的方法是:对于每个节点,将其第一个孩子作为其左孩子,将其兄弟作为其右孩子。
将二叉树转换为树的方法是:对于每个节点,将其右孩子作为其兄弟。
3、二叉树线索化是将二叉树中的空指针指向该节点在中序遍历中的前驱或后继节点的过程。
在线索二叉树中,一个结点是叶结点的充要条件为:左、右标志均是1.4、邻接表是图的一种链式存储结构,用于表示图中每个节点的邻居节点。
每个节点都有一个链表,存储着与该节点相邻的节点。
邻接表是一种图的存储结构,对于每个顶点建立一个单链表,单链表中的结点表示依附于该顶点的边(对于有向图是以该顶点为尾的弧)。
邻接表中的表结点和头结点分别表示边和顶点,包含信息如下:表结点adjvex(邻接点)。
nextarc(指向下一个表结点)(权值等信息);头结点data(顶点信息)和firstarc(指向第一个表结点)。
数据结构复习要点(汇总版)

第一章数据结构概述基本概念与术语1.数据:数据是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并被计算机程序所处理的符号的总称。
2.数据元素:数据元素是数据的基本单位,是数据这个集合中的个体,也称之为元素,结点,顶点记录。
(补充:一个数据元素可由若干个数据项组成。
数据项是数据的不可分割的最小单位。
)3.数据对象:数据对象是具有相同性质的数据元素的集合,是数据的一个子集。
(有时候也叫做属性。
)4.数据结构:数据结构是相互之间存在一种或多种特定关系的数据元素的集合。
(1)数据的逻辑结构:数据的逻辑结构是指数据元素之间存在的固有逻辑关系,常称为数据结构。
数据的逻辑结构是从数据元素之间存在的逻辑关系上描述数据与数据的存储无关,是独立于计算机的。
依据数据元素之间的关系,可以把数据的逻辑结构分成以下几种:1.集合:数据中的数据元素之间除了“同属于一个集合“的关系以外,没有其他关系。
2.线性结构:结构中的数据元素之间存在“一对一“的关系。
若结构为非空集合,则除了第一个元素之外,和最后一个元素之外,其他每个元素都只有一个直接前驱和一个直接后继。
3.树形结构:结构中的数据元素之间存在“一对多“的关系。
若数据为非空集,则除了第一个元素(根)之外,其它每个数据元素都只有一个直接前驱,以及多个或零个直接后继。
4.图状结构:结构中的数据元素存在“多对多”的关系。
若结构为非空集,折每个数据可有多个(或零个)直接后继。
(2)数据的存储结构:数据元素及其关系在计算机内的表示称为数据的存储结构。
想要计算机处理数据,就必须把数据的逻辑结构映射为数据的存储结构。
逻辑结构可以映射为以下两种存储结构:1.顺序存储结构:把逻辑上相邻的数据元素存储在物理位置也相邻的存储单元中,借助元素在存储器中的相对位置来表示数据之间的逻辑关系。
2.链式存储结构:借助指针表达数据元素之间的逻辑关系。
不要求逻辑上相邻的数据元素物理位置上也相邻。
数据结构复习要点(整理版)

第一章数据结构概述基本概念与术语1.数据:数据是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并被计算机程序所处理的符号的总称。
2.数据元素:数据元素是数据的基本单位,是数据这个集合中的个体,也称之为元素,结点,顶点记录。
(补充:一个数据元素可由若干个数据项组成。
数据项是数据的不可分割的最小单位。
)3.数据对象:数据对象是具有相同性质的数据元素的集合,是数据的一个子集。
(有时候也叫做属性。
)4.数据结构:数据结构是相互之间存在一种或多种特定关系的数据元素的集合。
(1)数据的逻辑结构:数据的逻辑结构是指数据元素之间存在的固有逻辑关系,常称为数据结构。
数据的逻辑结构是从数据元素之间存在的逻辑关系上描述数据与数据的存储无关,是独立于计算机的。
依据数据元素之间的关系,可以把数据的逻辑结构分成以下几种:1.集合:数据中的数据元素之间除了“同属于一个集合“的关系以外,没有其他关系。
2.线性结构:结构中的数据元素之间存在“一对一“的关系。
若结构为非空集合,则除了第一个元素之外,和最后一个元素之外,其他每个元素都只有一个直接前驱和一个直接后继。
3.树形结构:结构中的数据元素之间存在“一对多“的关系。
若数据为非空集,则除了第一个元素(根)之外,其它每个数据元素都只有一个直接前驱,以及多个或零个直接后继。
4.图状结构:结构中的数据元素存在“多对多”的关系。
若结构为非空集,折每个数据可有多个(或零个)直接后继。
(2)数据的存储结构:数据元素及其关系在计算机内的表示称为数据的存储结构。
想要计算机处理数据,就必须把数据的逻辑结构映射为数据的存储结构。
逻辑结构可以映射为以下两种存储结构:1.顺序存储结构:把逻辑上相邻的数据元素存储在物理位置也相邻的存储单元中,借助元素在存储器中的相对位置来表示数据之间的逻辑关系。
2.链式存储结构:借助指针表达数据元素之间的逻辑关系。
不要求逻辑上相邻的数据元素物理位置上也相邻。
数据结构复习资料.doc

数据结构复习资料.数据结构的定义数据结构是一门讨论“描述现实世界实体的数学模型(非数值计算)及其上的操作在计算机中如何表示和实现”的学科。
数据结构:是指数据以及数据元素相互之间的联系,可以看作是相互之间存在着某种特定关系的数据元素的集合。
对数据结构的内容包括以下几个方面:①数据的逻辑结构,指数据元素之间的逻辑关系。
②数据的存储结构,指数据元素及其关系在计算机存储器中的存储方式,也称为数据的物理结构。
③数据运算,指施加在数据上的操作。
算法是对特定问题求解步骤的一种描述,它是指令的有限序列,其中,每一条指令表示一个或多个操作。
粗略地说,算法是为了求解问题而给出的一个指令序列,程序是算法的一种具体实现。
一个算法必须满足以下五个重要特性:1. 有穷性2. 确定性3. 可行性4. 有输入5. 有输出算法的重要特征(1) 有穷性: 算法在有穷步之后结束,每一步在有穷时间内完成。
(2) 确定性: 算法中的每一条指令有明确的含义,无二义性。
(3) 可行性: 可通过已经实现的基本运算执行有限次来实现算法中的所有操作。
算法分析的两个主要方面是分析算法的时间复杂度和空间复杂度。
算法的执行时间主要与问题的规模有关。
问题规模是一个与输入有关的量。
语句频度是指算法中该语句被重复执行的次数。
算法中所有语句的频度之和记作T(n),是该算法所求解问题规模的函数。
当问题规模趋向无穷大时,T(n)的数量级称为渐进时间复杂度,简称时间复杂度,记作T(n)=O(f(n))。
通常采用算法中表示基本运算的语句的频度来分析算法的时间复杂度。
例题:1. 数据结构中的逻辑结构是指(),物理结构是指()。
2. 算法的基本特征包括有穷性、( )、( )、有输入和输出。
3. 算法的有穷性是指()。
4. 算法的确定性是指()。
5. 算法的可行性是指()。
6. 算法分析的两个主要方面是分析算法的()和空间复杂度。
7. 语句频度是指(算法中该语句被重复执行的次数)。
《数据结构》课程复习资料.doc

《数据结构》课程复习资料一、填空题:1.设需要对5个不同的记录关键字进行排序,则至少需要比较土次,至多需要比较10次。
2.设二叉排序树的高度为h,则在该树中查找关键字key最多需要比较丄次。
3.设在长度为20的有序表中进行二分查找,则比较一次查找成功的结点数有丄个,比较两次查找成功有结点数有生个。
4.数据结构从逻辑上划分为三种基本类型§线性结构、树型结构和图型结构。
5.在一个具有n个顶点的无向完全图中,包含有n(n-l)/2条边,在一个具有n个顶点的有向完全图中,包含有n(n-l)条边。
6.向一棵B.树插入元素的过程中,若最终引起树根结点的分裂,则新树比原树的高度增加1。
7•在堆排序的过程中,对任一分支结点进行筛运算的时间复杂度为0(log2n),整个堆排序过程的时间复杂度为0(nlog2n)。
8.在快速排序、堆排序、归并排序中,归并排序是稳定的。
9.在有n个叶子结点的哈夫曼树屮,总结点数是旷1 °10.—棵树T采用二叉链表存储,如果树T中某结点为叶子结点,则在二叉链表BT中所对应的结点一定左右子树空。
11.已知数组A [ 1 0 ] [ 1 0 ]为对称矩阵,英中每个元素占5个单元。
现将英下三角部分按行优先次序存储在起始地址为1000的连续的内存单元中,则元素A [5, 6]对应的地址是1225 o12.在有n个结点的无向图中,其边数最多为n(n-l)/2。
13.取出广义表A二(x, (a, b, c, d))中原子x的函数是head (A) o14.对矩阵采用压缩存储是为了节省空间。
15.带头结点的双循环链表L为空表的条件是L->next二L->prior 或L-〉next二L。
16.设线性表中元素的类型是实型,其首地址为1024,则线性表屮第6个元素的存储位置是1044。
17.对于顺序存储的栈,因为栈的空间是有限的,在进行入栈(插入)运算时,可能发生栈的上溢,在进行出栈(删除)运算时,可能发生栈的下溢。
数据结构复习要点(整理版)

第一章数据结构概述基本概念与术语1.数据:数据是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并被计算机程序所处理的符号的总称。
2.数据元素:数据元素是数据的基本单位,是数据这个集合中的个体,也称之为元素,结点,顶点记录。
(补充:一个数据元素可由若干个数据项组成。
数据项是数据的不可分割的最小单位。
)3.数据对象:数据对象是具有相同性质的数据元素的集合,是数据的一个子集。
(有时候也叫做属性。
)4.数据结构:数据结构是相互之间存在一种或多种特定关系的数据元素的集合。
(1)数据的逻辑结构:数据的逻辑结构是指数据元素之间存在的固有逻辑关系,常称为数据结构。
数据的逻辑结构是从数据元素之间存在的逻辑关系上描述数据与数据的存储无关,是独立于计算机的。
依据数据元素之间的关系,可以把数据的逻辑结构分成以下几种:1.集合:数据中的数据元素之间除了“同属于一个集合“的关系以外,没有其他关系。
2.线性结构:结构中的数据元素之间存在“一对一“的关系。
若结构为非空集合,则除了第一个元素之外,和最后一个元素之外,其他每个元素都只有一个直接前驱和一个直接后继。
3.树形结构:结构中的数据元素之间存在“一对多“的关系。
若数据为非空集,则除了第一个元素(根)之外,其它每个数据元素都只有一个直接前驱,以及多个或零个直接后继。
4.图状结构:结构中的数据元素存在“多对多”的关系。
若结构为非空集,折每个数据可有多个(或零个)直接后继。
(2)数据的存储结构:数据元素及其关系在计算机内的表示称为数据的存储结构。
想要计算机处理数据,就必须把数据的逻辑结构映射为数据的存储结构。
逻辑结构可以映射为以下两种存储结构:1.顺序存储结构:把逻辑上相邻的数据元素存储在物理位置也相邻的存储单元中,借助元素在存储器中的相对位置来表示数据之间的逻辑关系。
2.链式存储结构:借助指针表达数据元素之间的逻辑关系。
不要求逻辑上相邻的数据元素物理位置上也相邻。
《数据结构》复习资料

《数据结构》复习资料《数据结构》复习资料1⼀、选择题1. ⼀棵⼆叉树中第6层上最多有()个结点。
A. 2B. 31C. 32D. 642. 顺序表中数据元素的存取⽅式为()。
A. 随机存取B. 顺序存取C. 索引存取D. 连续存取3. 设有⽆向图G=(V,E),其中顶点集合V={a,b,c,d,e,f},边集合E={(a,b), (a,e), (a,c), (b,e), (c,f), (f,d), (e,d)}。
对G进⾏深度优先遍历,正确的遍历序列是()。
A. a,b,e,c,d,fB. a,c,f,e,b,dC. a,e,b,c,f,dD. a,e,d,f,c,b4. 在待排元素序列基本有序的前提下,效率最⾼的排序⽅法是()。
A. 插⼊B. 选择C. 快速D. 归并5. 设表中含100个数据元素,⽤折半查找法进⾏查找,则所需最⼤⽐较次数为()。
A. 50B. 25C. 10D. 76. 设哈希表地址范围为0~19,哈希函数H(key)=key%17,使⽤⼆次探测再散列法处理冲突。
若表中已存放有关键字值为6、22、38、55的记录,则再放⼊关键字值为72的记录时,其存放地址应为()。
A. 2B. 3C. 4E. 8F. 以上都不对7. 设对下图从顶点a出发进⾏深度优先遍历,则()是可能得到的遍历序列。
A. acfgdebB. abcdefgC. acdgbefD. abefgcd8. 若需在O(nlog2n)的时间内完成对数组的排序,且要求排序是稳定的,则可选择的排序⽅法是()。
A. 快速排序B. 堆排序C. 归并排序D. 直接插⼊排序9. 设有⼀组关键字值(46,79,56,38,40,84),则⽤堆排序的⽅法建⽴的初始堆为()。
A. 79,46,56,38,40,84B. 84,79,56,38,40,46C. 84,79,56,46,40,38D. 84,56,79,40,46,3810. 设⼴义表L=((a,()),b,(c,d,e)),则Head(Tail(Tail(L)))的值为()。
数据结构复习要点整理版

第一章数据结构概述基本概念与术语1.数据:数据是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并被计算机程序所处理的符号的总称。
2.数据元素:数据元素是数据的基本单位,是数据这个集合中的个体,也称之为元素,结点,顶点记录。
(补充:一个数据元素可由若干个数据项组成。
数据项是数据的不可分割的最小单位。
)3.数据对象:数据对象是具有相同性质的数据元素的集合,是数据的一个子集。
(有时候也叫做属性。
)4.数据结构:数据结构是相互之间存在一种或多种特定关系的数据元素的集合。
(1)数据的逻辑结构:数据的逻辑结构是指数据元素之间存在的固有逻辑关系,常称为数据结构。
数据的逻辑结构是从数据元素之间存在的逻辑关系上描述数据与数据的存储无关,是独立于计算机的。
依据数据元素之间的关系,可以把数据的逻辑结构分成以下几种:1.集合:数据中的数据元素之间除了“同属于一个集合“的关系以外,没有其他关系。
2.线性结构:结构中的数据元素之间存在“一对一“的关系。
若结构为非空集合,则除了第一个元素之外,和最后一个元素之外,其他每个元素都只有一个直接前驱和一个直接后继。
3.树形结构:结构中的数据元素之间存在“一对多“的关系。
若数据为非空集,则除了第一个元素(根)之外,其它每个数据元素都只有一个直接前驱,以及多个或零个直接后继。
4.图状结构:结构中的数据元素存在“多对多”的关系。
若结构为非空集,折每个数据可有多个(或零个)直接后继。
(2)数据的存储结构:数据元素及其关系在计算机内的表示称为数据的存储结构。
想要计算机处理数据,就必须把数据的逻辑结构映射为数据的存储结构。
逻辑结构可以映射为以下两种存储结构:1.顺序存储结构:把逻辑上相邻的数据元素存储在物理位置也相邻的存储单元中,借助元素在存储器中的相对位置来表示数据之间的逻辑关系。
2.链式存储结构:借助指针表达数据元素之间的逻辑关系。
不要求逻辑上相邻的数据元素物理位置上也相邻。
数据结构复习资料

目录目录 .................................................................................................................. 错误!未定义书签。
第一章绪论 ................................................................................................ 错误!未定义书签。
一、内容提要........................................................................................... 错误!未定义书签。
二、学习重点........................................................................................... 错误!未定义书签。
三、例题解析........................................................................................... 错误!未定义书签。
第二章线性表 ............................................................................................... 错误!未定义书签。
一、内容提要......................................................................................... 错误!未定义书签。
二、学习重点......................................................................................... 错误!未定义书签。
数据结构期末复习资料

数据结构复习资料第一章绪论1.1基本概念和术语1.数据是对客观事物的符号表示;数据元素是数据的基本单位,一个数据元素可由若干个数据项组成,数据项是数据的不可分割的最小单位;数据对象是性质相同的数据元素的集合,是数据的一个子集。
2.数据结构是相互之间存在一种或多种特定关系的数据元素的集合。
3.A.数据结构的三要素:①数据的逻辑结构②数据的存储结构③数据的运算(算法)B.任何一个算法的设计取决于选定的逻辑结构,而算法的实现依赖于采用的存储结构4.数据的逻辑结构:①集合②线性结构③树型结构④图状结构或网状结构1.2算法和算法分析1.算法的五个特性:①有穷性②确定性③可行性④输入⑤输出2.时间复杂度:时间复杂度是指执行算法所需要的计算工作量空间复杂度:空间复杂度是指执行这个算法所需要的内存空间第二章线性表2.1线性表的顺序表示和实现1.线性表的顺序表示指的是用一组地址连续的存储单元依次存储线性表的数据元素。
2.优点:线性表的顺序存储结构是一种随机存取的存储结构3.顺序线性表插入:顺序线性表删除:4.线性表的链式存储结构的特点是用一组任意的存储单元存储线性表的数据元素(可连续,可不连续)5.对数据元素来说,除了存储其自身的信息之外,还需存储一个指示其直接后继的信息(存储位置),这两部分信息组成数据元素的存储映像,称为结点。
他包括两个域:其中存储数据元素信息的域称为数据域;存储直接后继存储位置的域称为指针域。
指针域中存储的信息称为指针或域。
N个结点链结成一个链表,即为线性表的链式存储结构。
又由于此链表的每个结点中只包含一个指针域,故又称为线性链表或单链表。
6.链表的插入与删除7.双向链表的插入与删除第三章栈和队列3.1 栈1.栈是限定仅在表尾进行插入或删除操作的线性表。
因此,对栈来说,表尾端有其特殊含义,称为栈顶,相应的,表头端称为栈底。
不含元素的空表称为空栈。
2.栈又称为后进先出的线性表3.栈的进栈与出栈操作3.2队列1.队列是一种先进先出的线性表,它只允许在表的一段进行插入,而在另一端删除元素。
数据结构复习资料

数据结构复习资料一、单项选择题:1、以下说法正确的是(B )。
A.数据元素是数据的最小单位B.数据项是数据的基本单位C.数据结构是带有结构的各数据项的集合D.一些表面上很不相同的数据可以有相同的逻辑结构2、在数据结构中,从逻辑上可以把数据结构分成(C )。
A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.以上三个选项都是不是3、以下数据结构中,(A )是非线性数据结构A.树B.字符串C.队D.栈4. 对于int *pa[5]的描述,( D )是正确的。
A.pa是一个指向数组的指针,所指向的数组是5个int型元素B.pa是一个指向某数组中的第5个元素的指针,该元素是int型变量C.pa[5]表示某个数组的第5个元素的值D.pa是一个具有5个元素的指针数组,每个元素是一个int型指针5、在int a[][3]={{1},{3,2},{4,5,6},{0}}中,a[2][2]的值是( C )。
A.3B. 2C.6D.41. 栈和队列的共同特点是( A )。
A.只允许在端点处插入和删除元素B.都是先进后出C.都是先进先出D.没有共同点2. 用链接方式存储的队列,在进行插入运算时( D ).A. 仅修改头指针B. 头、尾指针都要修改C. 仅修改尾指针D.头、尾指针可能都要修改3. 算法分析的目的是:( C )A.找出数据结构的合理性 B.研究算法中的输入和输出的关系C.分析算法的效率以求改进D.分析算法的易懂性和文档性4. 算法分析的两个主要方面是:( A )A.空间复杂性和时间复杂性B.正确性和简明性C.可读性和文档性D.数据复杂性和程序复杂性5. 计算机算法指的是:( C )A.计算方法B.排序方法C.解决问题的有限运算序列D.调度方法6.循环链表的主要优点是( B ) 。
A.不在需要头指针了B.已知某个结点的位置后,能够容易找到他的直接前趋C.在进行插入、删除运算时,能更好的保证链表不断开D.从表中的任意结点出发都能扫描到整个链表7.设带有头结点的单向循环链表的头指针变量为head,则其判空条件是( B )。
数据结构复习资料

一、填空题1、栈的特点是先进后出(或后进先出),队列的特点是先进先出。
2、顺序表中逻辑上相邻的元素物理位置也相邻,单链表中逻辑上相邻的元素物理位置不相邻。
3、算法的5个重要特性是__________、__________、_________、___________、___________。
4、线性表、栈、队列都是线性结构,可以在线性表的任何位置插入和删除元素,对于栈只能在栈顶位置插入和删除元素,对于队列只能在队尾位置插入和只能在队头删除元素。
5、下面树的先序、中序、后续遍历的结果依次为_________、___________、__________6、当数据量特别大需借助外部存储器对数据进行排序时,则这种排序称为外部排序。
7、在堆排序、快速排序和归并排序中,若从节省存储空间的角度考虑,则应首先选取堆排序方法;若只从排序结果的稳定性考虑,则应选择归并排序方法;若只从平均情况下排序的速度来考虑,则应选取快速排序方法。
二、选择题1、算法分析的两个主要方面是()。
A. 时间复杂度和空间复杂度B. 正确性和简明性C. 可读性和文档性D. 健壮性和科学性2、对于线性表最常用的操作是查找指定序号的元素和在末尾插入元素,则选择()最节省时间。
A. 顺序表B. 带头结点的双循环链表C. 单链表D. 带尾结点的单循环链表5、循环队列在进行删除运算时()A. 仅修改头指针B. 修改尾指针C. 头、尾指针都要修改D. 头、尾指针可能都要修改6、栈和队列的共同点是()。
A.都是先进后出B.都是先进先出C.只允许在端点处插入和删除元素D.没有共同点7、树最适合用来表示()A.有序数据元素 B. 无序数据元素C.元素之间具有分支层次关系的数据 D. 元素之间无联系的数据8、如果结点A有3个兄弟,而且B是A的双亲,则B的度是()A. 4B. 5C. 1D. 39、有关二叉树下列说法正确的是()A. 二叉树的度为2B. 一棵二叉树的度可以小于2C. 二叉树中至少有一个结点的度为2D. 二叉树中任何一个结点的度都为210、一棵完全二叉树上有1001个结点,其中叶子结点的个数是()A. 250B. 500C. 505D. 以上答案都不对11、静态查找表与动态查找表二者的根本差别在于(B)A. 它们的逻辑结构不一样B. 施加在其上的操作不同C. 所包含的数据元素的类型不一样D. 存储实现不一样12、顺序查找法适合于存储结构为(B)的线性表。
数据结构(复习资料)

数据结构(复习资料)1.数据的逻辑结构是从逻辑关系上描述数据,它与数据的_________无关,是独立于计算机的。
2.在一个带头结点的单循环链表中,p指向尾结点的直接前驱,则指向头结点的指针 head 可用p表示为 head =_________________。
3.一个队列的入队序列是a、b、c、d,则队列的输出序列为________。
4.在串 S = "structure"中,以 t 为首字符的子串有_________个。
5.广义表C=( ( x, ( a , b ) ) ,( ( x , ( a , b ) ) , y ) ),则C的长度为___________,深度为___________。
6.已知一棵完全二叉树共有768个结点,则该树中有_______个叶子结点。
7.树的三种主要的遍历方法是:________ 、________ 和层次遍历。
8.在有n个结点的无向连通图中,其边数最少为____,最多为________。
9.在插入排序,希尔排序,选择排序,快速排序,堆排序,归并排序和基数排序中,平均比较次数最少的排序算法是__________。
10.在有序表(12,24,36,48,60,72,84)中二分查找关键字 72 时所需进行的关键字比较次数为_________。
11.算法指的是()A.计算机程序B.解决问题的计算方法C.排序算法D.解决问题的有限运算序列12.线性表采用链式存储时,结点的存储地址()A.必须是不连续的B.连续与否均可C.必须是连续的D.和头结点的存储地址相连续13.将长度为n 的单链表链接在长度为m 的单链表之后的算法的时间复杂度为()A.O( l ) B.O( n ) C.O( m ) D.O(m + n )14.一个栈的入栈序列是1,2,3,4,5,则栈的不可能的出栈序列是()A.5 4 3 2 1 B.4 5 3 2 1C.4 3 5 1 2 D.1 2 3 4 515.设n阶方阵是一个上三角矩阵,则需存储的元素个数是()A.n B.n2C.n2/2 D.n(n+1)/216.一个非空广义表的表头()A.不可能是子表B.只能是子表C.只能是原子D.可以是子表或原子17.在一棵度为3的树中,度为3的结点个数为2,度为2的结点个数为1,则度为0 的结点个数为()A.4 B.5 C.6 D.718.在含n个顶点和e条边的无向图的邻接矩阵中,零元素的个数为()A.e B.2e C.n2-e D.n2-2e19.求解含n个顶点和e条边的无向图的最小生成树Prim算法时间复杂度为()A.O(n2)B.O(n)C.O(e+n)D.O(elge)20.用某种排序方法对关键字序列(25 , 84 , 21 , 47 , 15 , 27 , 68 , 35 , 20)的变化情况如下:20 , 15 , 21 , 25 , 47 , 27 , 68 , 35 , 8415 , 20 , 21 , 25 , 35 , 27 , 47 , 68 , 8415 , 20 , 21 , 25 , 27 , 35 , 47 , 68 , 84则所采用的排序方法是()A.选择排序B.希尔排序C.归并排序D.快速排序21.适于对动态查找表进行高效率查找的组织结构是()A.有序表B.分块有序表C.二叉排序树D.线性链表22.在索引顺序文件中()A.主文件是无序的B.主文件是有序的C.不适合随机存取D.索引是稠密索引23.特殊矩阵和稀疏矩阵哪一种压缩存储后会失去随机存储功能?为什么?请论述原因。
数据结构复习资料

7^
43 1
9
3 7
6
5
5 65
2
7 10
6
3
8
4
1
3
5
2
3
4
8
7
7
4 3
5 5
6
有向图的拓扑排序
查找
顺序查找算法 折半查找算法 哈希表
例题
设哈希函数H(k)=3 K mod 11,散列地址空间为 0~10,对关键字序列(32,13,49,24,38,21,4,12)按 下述两种解决冲突的方法构造哈希表 (1)线性探测再散列 (2)链地址法,并分别求出等概率下查找成功时 的平均查找长度ASLsucc。
s
x
s->next
元素x结点应预先生成:
S=(LinkList)malloc(m); S->data=x; S->next=p->next
单链表的删除 在链表中删除某元素的示意图如下:
p
a ×b × c
p->next
(p->next) -> next
删除步骤(即核心语句):
q = p->next;
√C.任何一棵二叉树中的度肯定等于2 D.任何一棵二叉树中的度可以小于2
3习.若题一棵二叉树有10个度为2的结点,5个度为1
的结点,则二叉树结点总数为()
A.9
√B.26 C.15
D.不确定
4.一棵完全二叉树上有1001个结点,其中叶子结
√ 点的个数为()
A.250 B.500 C.254 D.505 E.以上答案都不对
DF I
树与二叉树的转换
A
断父子
A
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1. 快速排序在最坏情况下的时间复杂度为( D )。
A.O(log2n) B.O(nlog2n) C.O (n) D. O (n2)2.设一棵二叉树的深度为k,则该二叉树中最多有( D )个结点。
A. 2k-1B. 2kC.2k-1D. 2k-13.二叉树中第i(i≥1)层上的结点数最多有( C )个。
A. 2iB. 2iC. 2i-1D. 2i-1 4.设指针变量p指向单链表结点A,则删除结点A的后继结点B需要的操作为( A )。
A. p->next=p->next->nextB. p=p->nextC. p=p->next->nextD. p->next=p5.设栈S和队列Q的初始状态为空,元素E1、E2、E3、E4、E5和E6依次通过栈S,一个元素出栈后即进入队列Q,若6个元素出列的顺序为E2、E4、E3、E6、E5和E1,则栈S的容量至少应该是( C )。
A. 6B. 4C. 3D. 26.设有以下四种排序方法,则( B )的空间复杂度最大。
A. 冒泡排序B. 快速排C. 堆排序D. 希尔排序7.设结点A有3个兄弟结点且结点B为结点A的双亲结点,则结点B的度数数为( B )。
A. 3B. 4C. 5D. 18.根据二叉树的定义可知二叉树共有( B )种不同的形态。
A. 4B. 5C. 6D. 79.对一个算法的评价,不包括如下( A )方面的内容。
A.并行性 B.健壮性和可读性 C.正确性 D.时空复杂度10.在二叉排序树中插入一个结点的时间复杂度为( C )。
A.O(1) B.O(n) C.O(log2n) D.O(n2)11. 队列是一种( B )的线性表。
A.先进后出B.先进先出 C.只能插入D.只能删除12.采用开放定址法处理散列表的冲突时,其平均查找长度( C )。
A.低于链接法处理冲突 B. 与链接法处理冲突相同C.高于链接法处理冲突 D.高于二分查找13.设有序顺序表中有n个数据元素,则利用二分查找法查找数据元素X的最多比较次数不超过( A )。
A. log2n+1 B.log2n-1 C. log2n D. log2(n+1)14. 从数据结构上讲,字符串是比较特殊的( C )。
A.堆栈 B.队列 C.线性表D.二叉树15.函数substring(“DATASTRUCTURE”,5,9)的返回值为( A )。
A.STRUCTURE B.DATAC.ASTRUCTUR D.DATASTRUCTURE16.队列是一种( B )的线性表。
A.先进后出B.先进先出 C.只能插入D.只能删除17.对一个算法的评价,不包括如下( A )方面的内容。
A.并行性 B.健壮性和可读性 C.正确性 D.时空复杂度18. 从二叉搜索树中查找一个元素时,其时间复杂度大致为( C )。
A. O(n)B. O(1)C. O(log2n)D. O(n2)19.采用开放定址法处理散列表的冲突时,其平均查找长度( C )。
A.低于链接法处理冲突 B. 与链接法处理冲突相同C.高于链接法处理冲突 D.高于二分查找20.设有序顺序表中有n个数据元素,则利用二分查找法查找数据元素X的最多比较次数不超过( A )。
A. log2n+1 B.log2n-1 C. log2n D. log2(n+1)21.下列四种排序中( D )的空间复杂度最大。
A.堆B.冒泡排序 C.希尔排序 D.快速排序22.设某二叉树中度数为0的结点数为N0,度数为1的结点数为Nl,度数为2的结点数为N2,则下列等式成立的是( B )。
A. N0=N1+1 B. N=N2+1 C. N=Nl+N2D. N=2N1+l23.时间复杂度不受数据初始状态影响而恒为O(nlog2n)的是( B )。
A. 冒泡排序B.堆排序C.希尔排序D.快速排序1.字符串必须以字符’\0’表示串值的终结。
√2.哈夫曼树中没有度数为1的结点。
√3.冒泡排序在初始关键字序列为逆序的情况下执行的交换次数最多。
√4.设初始记录关键字基本有序,则快速排序算法的时间复杂度为O(nlog2n)。
5.分块查找的平均查找长度不仅与索引表的长度有关,而且与块的长度有关。
√6.如果两个关键字的值不等但哈希函数值相等,则称这两个关键字为同义词。
√7.有向图的邻接表和逆邻接表中表结点的个数不一定相等。
8.如果某个有向图的邻接表中第i条单链表为空,则第i个顶点的出度为零。
√9.线性表中的所有元素都有一个前驱元素和后继元素。
10.带权无向图的最小生成树是唯一的。
11. 线性表中的所有元素都有一个前驱元素和后继元素。
12. 非空的双向循环链表中任何结点的前驱指针均不为空。
√13.图的邻接矩阵法:n个顶点需要n*n个单元存储边(弧);空间效率为O(n2)。
√14.稀疏矩阵的压缩存储可以用一个三元组表来表示稀疏矩阵中的非0元素。
15.入栈操作和入队列操作在链式存储结构上实现时需要考虑栈溢出的情况。
16.中序遍历一棵二叉排序树可以得到一个有序的序列。
√17.顺序表查找指的是在顺序存储结构上进行查找。
1.设指针变量p指向单链表中结点A,指针变量s指向被插入的结点X,则在结点A的后面插入结点X需要执行的语句序列:。
2. 具有n个顶点,条边的图,称为完全无向图;具有n个顶点,条弧的有向图,称为完全有向图。
3. 设输入序列为1、2、3,则经过栈的作用后可以得到____5____种不同的输出序列。
4. 设二叉树中结点的两个指针域分别为lchild和rchild,则判断指针变量p所指向的结点为叶子结点的条件是_p->lchild==0&&p->rchild==0 ___。
5. 设二叉树中结点的两个指针域分别为lchild和rchild,则判断指针变量p所指向的结点为叶子结点的条件是_ p->lchild==0&&p->rchild==0________。
6. 设一组初始记录关键字序列为(20,18,22,16,30,19),则以20为中轴的一趟快速排序结果为__19,18,16,20,30,22____________________________。
7. for(i=1,t=1,s=0;i<=n;i++) {t=t*i;s=s+t;}的时间复杂度为_____O(n) ____。
8. 设有n个结点的完全二叉树,如果按照从自上到下、从左到右从1开始顺序编号,则第i个结点的双亲结点编号为____i/2________,右孩子结点的编号为____2i+1 _______。
9. 设某无向图中顶点数和边数分别为n和e,所有顶点的度数之和为d,则e=_2d______。
10. 设有向图G的二元组形式表示为G =(V,E),V={1,2,3,4,5},E={<1,2>,<2,4>,<4,5>,<1,3>,<3,2>,<3,5>},则该图的一种拓扑排序序列为___1,3,2,4,5_____________________ 。
11. 设查找表中有100个元素,如果用二分法查找方法查找数据元素X,则最多需要比较___7_____次就可以断定数据元素X是否在查找表中。
12.设一组初始记录关键字序列为(49,38,65,97,76,13,27,50),则以d=4为增量的一趟希尔排序结束后的结果为________49,13,27,50,76,38,65,97 ______________。
13.设某棵二叉树的中序遍历序列为ABCD,后序遍历序列为BADC,则其前序遍历序列为___BADC_______。
14.完全二叉树中第5层上最少有_____1_____个结点,最多有___16______个结点。
15.设有一组初始记录关键字序列为(50,16,23,68,94,70,73),则将它们调整成初始堆只需把16与_____50______相互交换即可。
16. 子串的定位运算通常称为串的_串匹配___,是串处理中最重要的运算之一若n为主串长度,m为子串长度,则串的匹配算法时间复杂度为_m*n___。
17 在堆排序的过程中,对任一分支结点进行筛运算的时间复杂度为_ O(log2n)_______,整个堆排序过程的时间复杂度为_ O(nlog2n)_______。
18. 具有n个顶点,____ n(n-1)/2_________条边的图,称为完全无向图;具有n个顶点,____ n(n-1)____________条弧的有向图,称为完全有向图。
19 一组有序的记录关键字序列为(13,18,24,35,47,50,62,83,90),查找方法用二分查找,查找关键字62时的比较次数为___2____,查找成功时的平均查找长度_ASL=91*1+2*2+3*4+4*2)=25/9___。
20.设有一组初始记录关键字序列为(50,16,23,68,94,70,73),则将它们调整成初始堆只需把16与____50_______相互交换即可。
1.阅读下面的算法LinkList mynote(LinkList L) {//L是不带头结点的单链表的头指针 if(L&&L->next){q=L; L=L->next; p=L;S1: while(p->next) p=p->next;p->next=q; q->next=NULL;} return L;}请回答下列问题:1)说明语句S1的功能;答:查询链表的尾结点2)设链表表示的线性表为(a1,a2, …,an),写出算法执行后的返回值所表示的线性表________(a2,a3,……,an,a1)_______________________。
2. 阅读下面算法:void ABC(BTNode * BT) {if (BT) {ABC (BT->left);cout<<BT->data<<’’;ABC (BT->right);}}该算法的功能是:____递归地后序遍历链式存储的二叉树。
____________。
3.阅读下面算法void conversion(){Stack s; int n; SElemType e; initstack(s);printf("Please input number:");scanf(“%d”,&n);while(n){push(s,n%6); n=n/6;}while(!stackempty(s)){pop(s,e); printf(“%d”,e);}}1)指出该算法的功能。