《2017-2018年度年数据结构专科复习资料.doc》由会员分享,可在线阅读,更多相关《2017-2018年度年数据结构专科复习资料.doc(31页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、数据结构课程复习资料一、填空题:1.设需要对 5 个不同的记录关键字进行排序,则至少需要比较 4 次,至多需要比较 10 次。2.设二叉排序树的高度为 h,则在该树中查找关键字 key 最多需要比较 n 次。3.设在长度为 20 的有序表中进行二分查找,则比较一次查找成功的结点数有 1 个,比较两次查找成功有结点数有 2 个。4.数据结构从逻辑上划分为三种基本类型:线性结构、树型结构和 图型结构。5.在一个具有 n 个顶点的无向完全图中,包含有 n(n-1)/2 条边,在一个具有 n 个顶点的有向完全图中,包含有 n(n-1)条边。6.向一棵 B_树插入元素的过程中,若最终引起树根结点的分裂,
2、则新树比原树的高度增加 1。7.在堆排序的过程中,对任一分支结点进行筛运算的时间复杂度为 O(log2n) ,整个堆排序过程的时间复杂度为 O(nlog2n) 。8.在快速排序、堆排序、归并排序中,归并排序是稳定的。9.在有 n 个叶子结点的哈夫曼树中,总结点数是 n-1 。10.一棵树 T 采用二叉链表存储,如果树 T 中某结点为叶子结点,则在二叉链表 BT 中所对应的结点一定左右子树空。11.已知数组 A 为对称矩阵,其中每个元素占 5 个单元。现将其下三角部分按行优先次序存储在起始地址为 1000 的连续的内存单元中,则元素 A5,6对应的地址是 1225 。12.在有 n 个结点的无向
3、图中,其边数最多为 n(n-1)/2。13.取出广义表 A=(x,(a,b,c,d)中原子 x 的函数是 head(A)。14.对矩阵采用压缩存储是为了节省空间。15.带头结点的双循环链表 L 为空表的条件是 L-next=L-prior 或 L-next=L。16.设线性表中元素的类型是实型,其首地址为 1024,则线性表中第 6 个元素的存储位置是 1044。17.对于顺序存储的栈,因为栈的空间是有限的,在进行入栈(插入)运算时,可能发生栈的上溢,在进行出栈(删除)运算时,可能发生栈的下溢。18.在双向链表中,每个结点有两个指针域,一个指向前驱结点,另一个指向后继结点。19.由一棵二叉树的
4、前序序列和中序序列可唯一确定这棵二叉树。 20.折半查找的存储结构仅限于顺序存储结构,且是有序的。21.对于一个顺序存储的线性表,在表头插入元素的时间复杂度为 O(n),在表尾插入元素的时间复杂度为O(1)。22.在稀疏距阵所对应的三元组线形表中,每个三元组元素按行号为主序,列号为辅序的次序排列。23.中缀表达示 3+X*(2.4/5-6)所对应的后缀表达示为 3 x 2.4 5 6 *。24.在一棵高度为 h 的 3 叉树中,最多含有(3 h-1)/2 结点。25.分析下面算法(程序段) ,给出最大语句频度 n3,该算法的时间复杂度是 O(n3)。for (i=0;inext!=p) q=q
5、-next;s= new Node; s-data=e;q-next= s ; /填空s-next= p ; /填空29.在一个单链表中删除 p 所指结点的后继结点时,应执行以下操作:q= p-next;p-next=q-next; /填空delete q ; /填空30.两个串相等的充分必要条件是两个串的长度相等且对应位置的字符相同。31.二维数组 A1020采用列序为主方式存储,每个元素占一个存储单元并且 A00的存储地址是200,则 A612的地址是 200 +(6 * 20 + 12)= 326。32.二维数组 A10.205.10采用行序为主方式存储,每个元素占 4 个存储单元,并且
6、 A105的存储地址是 1000,则 A189的地址是 1000 + (18-10) * 6 + (9 - 5) * 4 = 1208。33.求下列广义表操作的结果:(1) GetTailGetHead(a,b),(c,d); (b)(2) GetTailGetHeadGetTail(a,b),(c,d) (d)34.已知一个有向图的邻接矩阵表示,计算第 i 个结点的入度的方法是求矩阵第 i 列非零元素之和。35.已知一个图的邻接矩阵表示,删除所有从第 i 个结点出发的边的方法是将矩阵第 i 行全部置为零。1. 评卷人 2. 得分3. 4.36.在利用快速排序方法对一组记录(54,38,96,
7、23,15,72,60,45,83)进行快速排序时,递归调用而使用的栈所能达到的最大深度为 2,共需递归调用的次数为 4,其中第二次递归调用是对(23,38,15)组记录进行快速排序。37.在堆排序,快速排序和归并排序中,若只从存储空间考虑,则应首先选取堆排序方法,其次选取快速排序方法,最后选取归并排序方法;若只从排序结果的稳定性考虑,则应选取归并排序方法;若只从平均情况下排序最快考虑,则应选取快速排序方法;若只从最坏情况下排序最快并且要节省内存考虑,则应选取堆排序方法。38.称算法的时间复杂度为 O(f(n),其含义是指算法的执行时间和 f(n) 的数量级相同。39.在一个长度为 n 的单链
8、表 L 中,删除链表中*p 的前驱结点的时间复杂度为 O(n)。40.假设为循环队列分配的向量空间为 Q20,若队列的长度和队头指针值分别为 13 和 17,则当前尾指针的值为 10。41.对于栈只能在栈顶插入和删除元素。42.设有一个顺序栈 S,元素 sl,s2,s3,s4,s5,s6 依次进栈,如果 6 个元素的出栈顺序为s2,s3,s4,s6,s5,sl,则顺序栈的容量至少应为 3 。43.数据结构一般包括三个方面内容:数据的 逻辑结构,数据的存储结构及数据的运算。44.在包含 n 个结点的顺序表上做等概率插入运算,平均要移动 n/2 个结点。45.队列的特性是先进先出。46.已知二叉树
9、中叶子数为 30,仅有一个孩子的结点数为 20,则总结点数为 79。47.中序遍历二叉排序树中的结点可以得到一个递增的关键字序列(选填“先序” 、 “中序”或“后序” ) 。48.n 个节点的连通图至少有 n-1 条边。49.在堆排序和快速排序中,如果从平均情况下排序的速度最快的角度来考虑,应最好选择 快速排序排序。50.带有一个头结点的单链表 head 为空的条件是(假设指针域的名称为 next)head-next=NULL。51.设一组初始关键字序列为(38,65,97,76,13,27,10),则第 3 趟简单选择排序后的结果为10,13,27,76,65,97,38。52.在拓扑排序中
10、,拓扑序列的第一个顶点必定是 入度为零 的顶点。53.数据的逻辑结构分为两大类,它们是线性结构和 非线性结构。54.在单链表中(假设结点指针域名称为 next) ,删除指针 P 所指结点的后继结点的语句是 p-next=p-next-next。55.已知循环队列用数组 datan存储元素值,用 front,rear 分别作为头尾指针,则当前元素个数为(rear-front+n)%n。56.若 n 为主串长,m 为子串长,则串的朴素匹配算法最坏的情况下需要比较字符的总次数(n-m+1)m 。57.广义表(a),(b),j,(d)的表尾是(b),j,(d)。58.已知二叉树有 61 个叶子节点,且
11、仅有一个孩子的节点数为 45,则总节点数为 166 。59.解决计算机与打印机之间速度不匹配问题,须要设置一个数据缓冲区,应是一个 队列 结构。二、单项选择题:1.队列的特点是 B A.先进后出 B.先进先出 C.任意位置进出 D.前面都不正确2.有 n 个 记 录 的 文 件 , 如 关 键 字 位 数 为 d, 基 数 为 r, 则 基 数 排 序 共 要 进 行 ( ) 遍 分 配 与 收 集 。 B A.n B.d C.r D.n - d3.在二叉树结点的先序序列、中序序列和后序序列中,所有叶子结点的先后顺序 B A.都不相同 B.完全相同C.先序和中序相同,而与后序不同 D.中序和后
12、序相同,而与先序不同4.设有 198 个初始归并段,如采用 K-路平衡归并三遍完成排序,则 K 值最大为 C A.12 B.13 C.14 D.155.下面关于广义表的叙述中,不正确的是 B A.广义表可以是一个多层次的结构 B.广义表至少有一个元素C.广义表可以被其他广义表所共享 D.广义表可以是一个递归表6.设二叉树根结点的层次为 0,一棵深度(高度)为 k 的满二叉树和同样深度完全二叉树各有 f 个结点和 c 个结点,下列关系式不正确的是 B A.f=c B.cf C.f=2k+1-a D.csk-17.从 L=(apple,pear),(orange,banana)中,取出 banan
13、a 元素的表达式为 D A.head(tail(L) B.head(head(tail(L)C.tail(head(tail(L) D.head(tail(head(tail(L)8.下列文件的物理结构中,不利于文件长度动态增长的文件物理结构是 A A.顺序结构 B.链接结构 C.索引结构 D.Hash 结构9.在数据结构中,数据元素可由 C A.实体 B.域 C.数据项 D.字段10.对 于 有 n 个 顶 点 的 有 向 图 ,由 弗 洛 伊 德 (FloyD 算 法 求 每 一 对 顶 之 间 的 最 短 路 径 的 时 间 复 杂 度 是 D A.O(1) B.O(n) C.O(n)
14、D.O(n3)11.对 n 个记录的文件进行快速排序,所需要的辅助存储空间为 B A.O(1) B.O(log 2n) C.O(n) D.O(n 2)12.哈夫曼树中一定不存在 B A.度为 0 的结点 B.度为 1 的结点 C.度为 2 的结点 D.带权的结点13.下述哪一条是顺序存储方式的优点? A A.存储密度大 B.插入和删除运算方便C.获取符合某种条件的元素方便 D.查找运算速度快14.有一个二维数组 Amn,假设 A00存放位置在 600(10),A33存放位置在 678(10),每个元素占一个空间,问 A23(10)存放在什么位置?(脚注(10)表示用 10 进制表示,m3) D
15、 A.658 B.648 C.633 D.65315.下列关于二叉树遍历的叙述中,正确的是 A A.若一个叶子是某二叉树的中序遍历的最后一个结点,则它必是该二叉树的前序遍历最后一个结点B.若一个结点是某二叉树的前序遍历最后一个结点,则它必是该二叉树的中序遍历的最后一个结点C.若一个结点是某二叉树的中序遍历的最后一个结点,则它必是该二叉树的前序最后一个结点D.若一个树叶是某二叉树的前序最后一个结点,则它必是该二叉树的中序遍历最后一个结点16.第 K 层二叉树的结点总数最多为 A A.2k-1 B.2k+1 C.2K-1 D.2k-117.线性表进行二分法查找,其前提条件是 C A.线性表以链接方
16、式存储,并且按关键码值排好序B.线性表以顺序方式存储,并且按关键码值的检索频率排好序C.线性表以顺序方式存储,并且按关键码值排好序D.线性表以链接方式存储,并且按关键码值的检索频率排好序18.n 个记录进行堆排序,所需要的辅助存储空间为 C A.O(1og2n) B.O(n) C.O(1) D.O(n2)19.线性表(7,34,77,25,64,49,20,14)进行散列存储时,若选用 H(K)=K%7 作为散列函数,则散列地址为 0 的元素有( )个。 D A.1 B.2 C.3 D.420.下列关于数据结构的叙述中,正确的是 D A.数组是不同类型值的集合 B.递归算法的程序结构比迭代算法
17、的程序结构更为精炼C.树是一种线性结构 D.用一维数组存储一棵完全二叉树是有效的存储方法21.以下数据结构中哪一个是线性结构? B A.有向图 B.队列 C.线索二叉树 D.B 树22.在一个单链表 HL 中,若要在当前由指针 p 指向的结点后面插入一个由 q 指向的结点,则执行如下( )语句序列。 D A.p=q; p-next=q; B.p-next=q; q-next=p;C.p-next=q-next; p=q; D.q-next=p-next; p-next=q;23.( )不是队列的基本运算。 A A.在队列第 i 个元素之后插入一个元素 B.从队头删除一个元素C.判断一个队列是否
18、为空 D.读取队头元素的值24.若已知一个栈的入栈序列是 1,2,3,n,其输出序列为 p1,p2,p3,pn,若 p1=n,则 pi为 C A.i B.n=i C.n-i+1 D.不确定25.栈的特点是( B ) ,队列的特点是(A ) 。 A.先进先出 B.先进后出26.设有两个串 p 和 q,求 q 在 p 中首次出现的位置的运算称作 B A.连接 B.模式匹配 C.求子串 D.求串长27.二维数组 A 中,每个元素 Aij的长度为 3 个字节,行下标 i 从 0 到 7,列下标 j 从 0 到 9,从首地址 SA 开始连续存放在存储器内,该数组按列存放时,元素 A47的起始地址为 B
19、A.SA+141 B.SA+180 C.SA+222 D.SA+22528.某二叉树的前序遍历结点访问顺序是 abdgcefh,中序遍历的结点访问顺序是 dgbaechf,则其后序遍历的结点访问顺序是 D A.bdgcefha B.gdbecfha C.bdgaechf D.gdbehfca29.在一非空二叉树的中序遍历序列中,根结点的右边 A A.只有右子树上的所有结点 B.只有右子树上的部分结点C.只有左子树上的部分结点 D.只有左子树上的所有结点30.具有 6 个顶点的无向图至少应有( )条边才能确保是一个连通图。 A A.5 B.6 C.7 D.831.二分查找和二叉排序树的时间性能
20、B A.相同 B.不相同32.采用二分查找方法查找长度为 n 的线性表时,每个元素的平均查找长度为 B A.O(n2) B.O(nlog2n) C.O(n) D.O(log2n)33.在待排序的元素序列基本有序的前提下,效率最高的排序方法是 A A.插入排序 B.选择排序 C.快速排序 D.归并排序34.下述几种排序方法中,要求内存量最大的是 D A.插入排序 B.选择排序 C.快速排序 D.归并排序35.设有两个串 p 和 q,求 q 在 p 中首次出现的位置的运算称作 B A.连接 B.模式匹配 C.求子串 D.求串长36.二维数组 A 中,每个元素 Aij的长度为 3 个字节,行下标 i
21、 从 0 到 7,列下标 j 从 0 到 9,从首地址 SA 开始连续存放在存储器内,该数组按列存放时,元素 A47的起始地址为 B A.SA+141 B.SA+180 C.SA+222 D.SA+22537.某二叉树的前序遍历结点访问顺序是 abdgcefh,中序遍历的结点访问顺序是 dgbaechf,则其后序遍历的结点访问顺序是 D A.bdgcefha B.gdbecfha C.bdgaechf D.gdbehfca38.在一非空二叉树的中序遍历序列中,根结点的右边 A A.只有右子树上的所有结点 B.只有右子树上的部分结点C.只有左子树上的部分结点 D.只有左子树上的所有结点39.具有
22、 6 个顶点的无向图至少应有( )条边才能确保是一个连通图。 A A.5 B.6 C.7 D.840.二分查找和二叉排序树的时间性能 B A.相同 B.不相同 C.可能相同 D.不确定41.采用二分查找方法查找长度为 n 的线性表时,每个元素的平均查找长度为 B A.O(n2) B.O(nlog2n) C.O(n) D.O(log2n)42.在待排序的元素序列基本有序的前提下,效率最高的排序方法是 A A.插入排序 B.选择排序 C.快速排序 D.归并排序43.下面的序列中( )是大顶堆。 D A.1,2,8,5,3,9,10,4 B.1,5,10,6,7,8,9,2C.9,8,7,6,4,8
23、,2,1 D.9,8,7,6,5,4,3,144.对一个算法的评价,不包括如下( )方面的内容。 B A.健壮性和可读性 B.并行性 C.正确性 D.时空复杂度45.在带有头结点的单链表 HL 中,要向表头插入一个由指针 p 指向的结点,则执行 A A.p-next=HL-next; HL-next=p B.p-next=HL; HL=pC.p-next=HL; p=HL D.HL=p; p-next=HL46.对线性表,在下列哪种情况下应当采用链表表示? B A.经常需要随机地存取元素 B.经常需要进行插入和删除操作C.表中元素需要占据一片连续的存储空间 D.表中元素的个数不变47.一个栈的
24、输入序列为 1 2 3,则下列序列中不可能是栈的输出序列的是 C A.2 3 1 B.3 2 1 C.3 1 2 D.1 2 348.每一趟都能选出一个元素放在其最终位置上,并且不稳定的排序算法是 B A.冒泡排序 B.简单选择排序 C.希尔排序 D.直接插入排序49.采用开放定址法处理散列表的冲突时,其平均查找长度 B A.低于链接法处理冲突 B.高于链接法处理冲突C.与链接法处理冲突相同 D.高于二分查找50.若需要利用形参直接访问实参时,应将形参变量说明为( )参数。 D A.值 B.函数 C.指针 D.引用51.在稀疏矩阵的带行指针向量的链接存储中,每个单链表中的结点都具有相同的 A
25、A.行号 B.列号 C.元素值 D.非零元素个数52.快速排序在最坏情况下的时间复杂度为 D A.O(log2n) B.O(nlog2n) C.O(n) D.O(n2)53.从二叉搜索树中查找一个元素时,其时间复杂度大致为 C A.O(n) B.O(1) C.O(log2n) D.O(n2)54.设一个有序的单链表中有 n 个结点,现要求插入一个新结点后使得单链表仍然保持有序,则该操作的时间复杂度为 D A.O(log2n) B.O(1) C.O(n2) D.O(n)55.设一棵 m 叉树中度数为 0 的结点数为 N0,度数为 1 的结点数为 Nl,度数为 m 的结点数为 Nm,则 N0= B
26、 A.Nl+N2+Nm B.l+N2+2N3+3N4+(m-1)NmC.N2+2N3+3N4+(m-1)Nm D.2Nl+3N2+(m+1)Nm56.二维数组 A 中,每个元素 A 的长度为 3 个字节,行下标 i 从 0 到 7,列下标 j 从 0 到 9,从首地址 SA开始连续存放在存储器内,该数组按行存放时,数组元素 A74的起始地址为 C A.SA+141 B.SA+144 C.SA+222 D.SA+22557.如果某二叉树的前根次序遍历结果为 stuwv,中序遍历为 uwtvs,那么该二叉树的后序为 B A.uwvts B.vwuts C.wuvts D.wutsv58.深度为 5
27、 的二叉树至多有( )个结点。 C A.16 B.32 C.31 D.1059.在一个无向图中,所有顶点的度数之和等于所有边数的( )倍。 C A.1/2 B.1 C.2 D.460.采用顺序查找方法查找长度为 n 的线性表时,每个元素的平均查找长度为 C A.n B.n/2 C.(n+1)/2 D.(n-1)/261.采用二分查找方法查找长度为 n 的线性表时,每个元素的平均查找长度为 C A.O(n 2) B.O(nlog 2n) C.O(n) D.O(log2n)62.下述几种排序方法中,要求内存量最大的是 D A.插入排序 B.选择排序 C.快速排序 D.归并排序63.排序方法中,从未
28、排序序列中依次取出元素与已排序序列(初始时为空)中的元素进行比较,将其放入已排序序列的正确位置上的方法,称为 C A.希尔排序 B.起泡排序 C.插入排序 D.选择排序64.对于长度为 9 的有序顺序表,若采用折半搜索,在等概率情况下搜索成功的平均搜索长度为( )的值除以 9。 C A.20 B.18 C.25 D.2265.在有向图中每个顶点的度等于该顶点的 C A.入度 B.出度 C.入度与出度之和 D.入度与出度之差66.在基于排序码比较的排序算法中, ( )算法的最坏情况下的时间复杂度不高于 O(n10g2n)。 C A.起泡排序 B.希尔排序 C.归并排序 D.快速排序67.当 的值
29、较小时,散列存储通常比其他存储方式具有( )的查找速度。 B A.较慢 B.较快 C.相同 D.不清楚68.设有一个含 200 个表项的散列表,用线性探查法解决冲突,按关键码查询时找到一个表项的平均探查次数不超过 1.5,则散列表项应能够至少容纳( )个表项。 A (设搜索成功的平均搜索长度为 Snl1+l(1 一 )2,其中 为装填因子)A.400 B.526 C.624 D.67669.堆是一个键值序列k 1,k2,.kn,对 I=1,2,.|_n/2_|,满足 C A.kik 2ik 2i+1 B.kirear=Q-front B.(Q-rear+1)%maxsize=Q-frontC.
30、Q-rear=0 D.Q-front=088.设有一广义表 E=(a,b,(c,d)) ,其长度为 A A.2 B.3 C.4 D.589.某二叉树的前序遍历序列为 ABDEFC,中序遍历序列为 DBEFAC,则后序遍历序列为 D A.DFEBCA B.DBECFA C.BDAECF D.DBEFCA90.下列( )不是利用查找表中数据元素的关系进行查找的方法。 C A.有序表的查找 B.二叉排序树的查找 C.平衡二叉树 D.散列查找91.下述几种排序方法中,要求内存量最大的是 B A.插入排序 B.快速排序 C.归并排序 D.选择排序92.在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的( )倍。 B A.1/2 B.1 C.2 D.493.在带有头结点的单链表 HL 中,要向表头插入一个由指针 p 指向的结点,则执行 A A.p-next