算法与数据结构复习题
数据结构与算法复习题
《数据结构与算法》一、选择题1. 组成数据的基本单位是( )。
(A) 数据项 (B)数据类型 (C)数据元素 (D)数据变量2. 线性表的链接实现有利于( )运算。
(A) 插入 (B)读表元 (C)查找 (D)定位3. 串的逻辑结构与( )的逻辑结构不同。
(A) 线性表 (B)栈 (C)队列 (D)树4. 二叉树第i(i≥1)层最多有( )个结点。
(A) 2i (B)2i (C) 2i-1 (D) 2i-15. 设单链表中指针p指向结点A,若要删除A后结点(若存在),则需要修改指针的操作为( )(A) p->next = p->next->next (B)p=p->next(C)p=p->next->next (D)p->next=p6、栈和队列的共同特点是( )。
(A)只允许在端点处插入和删除元素 (B)都是先进后出(C)都是先进先出 (D)没有共同点7、二叉树的第k层的结点数最多为( ).(A)2k+1 (B)2K+1 (C)2K-1(D) 2k-18、设某棵二叉树的中序遍历序列为ABCD,前序遍历序列为CABD,则后序遍历该二叉树得到序列为()。
(A) BADC (B) BCDA (C) CDAB (D) CBDA9、设某完全无向图中有n个顶点,则该完全无向图中有()条边。
(A) n(n-1)/2 (B) n(n-1) (C) n2 (D) n2-110、下面程序的时间复杂为()for(i=1,s=0; i<=n; i++){t=1;for(j=1;j<=i;j++)t=t*j;s=s+t;}(A) O(n) (B) O(n2) (C) O(nlog2n) (D) O(n3)11、设某强连通图中有n个顶点,则该强连通图中至少有()条边。
(A) n(n-1) (B) n+1 (C) n (D) n(n+1)12、设某有向图的邻接表中有n个表头结点和m个表结点,则该图中有()条有向边。
数据结构与算法试题+答案
数据结构与算法试题+答案一、单选题(共86题,每题1分,共86分)1.栈和队列的共同点是()。
A、只允许在端点处插入和删除元素B、都是先进后出C、都是先进先出D、没有共同点正确答案:A2.数据元素在计算机存储器内表示时,物理相对位置和逻辑相对位置相同并且是连续的,称之为()。
A、逻辑结构B、顺序存储结构C、链式存储结构D、以上都不对正确答案:B3.假设我们只有2条磁带Ta和Tb用于做外部排序。
假设内存可以一次处理M条记录。
初始状态下Ta上存有N条记录。
下列简单算法的执行步骤为:第1步:从Ta一次读入M条记录到内存,做内部排序,然后将有序的结果写到Tb。
第2步:从Ta一次读入M条记录到内存,做内部排序,然后将其与Tb上存储的有序列做归并,将有序的(2M条记录)结果写到Ta。
第3步:从Ta一次读入M条记录到内存,做内部排序,然后将其与Tb上存储的2M条记录的有序列做归并,将有序的(3M条记录)结果写到Tb。
重复第2、3步,直到全部记录有序。
上述算法需要执行__轮。
A、⌈N/M⌉B、logNC、⌈log(N/M)⌉D、logMN正确答案:A4.对任意给定的含 n (n>2) 个字符的有限集 S,用二叉树表示 S 的哈夫曼编码集和定长编码集,分别得到二叉树 T1 和 T2。
下列叙述中,正确的是:A、出现频次不同的字符在 T2 中处于相同的层B、出现频次不同的字符在 T1 中处于不同的层C、T1 与 T2 的结点数相同D、T1 的高度大于 T2 的高度正确答案:A5.对初始数据序列{ 8, 3, 9, 11, 2, 1, 4, 7, 5, 10, 6 }进行希尔排序。
若第一趟排序结果为( 1, 3, 7, 5, 2, 6, 4, 9, 11, 10, 8 ),第二趟排序结果为( 1, 2, 6, 4, 3, 7, 5, 8, 11, 10, 9 ),则两趟排序采用的增量(间隔)依次是:A、3, 1B、5, 2C、3, 2D、5, 3正确答案:D6.从一个具有N个结点的单链表中查找其值等于X的结点时,在查找成功的情况下,需平均比较多少个结点?A、N/2B、(N+1)/2C、ND、(N−1)/2正确答案:B7.下面代码段的时间复杂度是()。
数据结构与算法试题库含答案
数据结构与算法试题库含答案一、单选题(共100题,每题1分,共100分)1.定义学生选修课程的关系模式如下:SC (S#,Sn,C#,Cn,G)(其属性分别为学号、姓名、课程号、课程名、成绩)则该关系的主键为A、S#,C#B、S#C、C#D、S#,C#,G正确答案:A2.下列叙述中正确的是A、解决同一个问题的不同算法的时间复杂度必定是相同的B、对同一批数据作不同的处理,如果数据存C、对同一批数据作同一种处理,如果数据存储结构不同,不同算法的时间复杂度肯定相同D、解决同一个问题的不同算法的时间复杂度一般是不同的正确答案:D3.小张的毕业论文设置为 2 栏页面布局,现需在分栏之上插入一横跨两栏内容的论文标题,最优的操作方法是:A、在两栏内容之前空出几行,打印出来后手动写上标题。
B、在两栏内容之上插入一个文本框,输入标题,并设置文本框的环绕方式。
C、在两栏内容之上插入一个艺术字标题。
第 7 组D、在两栏内容之上插入一个分节符,然后设置论文标题位置。
正确答案:D4.连接数据库所使用的开放数据库互连(ODBC)属于:A、数据库B、数据库中间件C、共享软件D、云操作系统正确答案:B5.中学教师和授课班级之间的联系是A、一对多B、多对一C、一对一D、多对多正确答案:D6.小王要将一份通过 Excel 整理的调查问卷统计结果送交经理审阅,这份调查表包含统计结果和中间数据两个工作表。
他希望经理无法看到其存放中间数据的工作表,最优的操作方法是:A、将存放中间数据的工作表删除B、将存放中间数据的工作表移动到其他工作簿保存C、将存放中间数据的工作表隐藏,然后设置保护工作表隐藏D、将存放中间数据的工作表隐藏,然后设置保护工作簿结构正确答案:D7.循环队列的存储空间为 Q(1:100),初始状态为 front=rear=100。
经过一系列正常的入队与退队操作后,front=rear=99,则循环队列中的元素个数为A、2B、99第 17 组C、0 或 100D、1正确答案:C8.下列设备组中,完全属于计算机输出设备的一组是:A、喷墨打印机,显示器,键盘B、打印机,绘图仪,显示器C、键盘,鼠标器,扫描仪D、激光打印机,键盘,鼠标器正确答案:B9.现代微型计算机中所采用的电子元器件是:A、电子管B、大规模和超大规模集成电路C、晶体管D、小规模集成电路正确答案:B10.软件生存周期中,解决软件“怎么做”的阶段是A、需求分析B、软件设计C、可行性研究D、软件测试正确答案:B11.设一棵度为 3 的树,其中度为 2,1,0 的结点数分别为 3,1,6。
数据结构与算法分析考试试题
数据结构与算法分析考试试题一、选择题(共 20 小题,每小题 3 分,共 60 分)1、在一个具有 n 个元素的顺序表中,查找一个元素的平均时间复杂度为()A O(n)B O(logn)C O(nlogn)D O(n²)2、以下数据结构中,哪一个不是线性结构()A 栈B 队列C 二叉树D 线性表3、一个栈的入栈序列是 1,2,3,4,5,则栈的不可能的出栈序列是()A 5,4,3,2,1B 4,5,3,2,1C 4,3,5,1,2D 1,2,3,4,54、若一棵二叉树的先序遍历序列为 ABCDEFG,中序遍历序列为CBDAEGF,则其后序遍历序列为()A CDBGFEAB CDBFGEAC CDBAGFED BCDAGFE5、具有 n 个顶点的无向完全图的边数为()A n(n 1)B n(n 1) / 2C n(n + 1) / 2D n²6、以下排序算法中,在最坏情况下时间复杂度不是O(n²)的是()A 冒泡排序B 选择排序C 插入排序D 快速排序7、在一个长度为 n 的顺序表中,删除第 i 个元素(1≤i≤n)时,需要向前移动()个元素。
A n iB iC n i + 1D n i 18、对于一个具有 n 个顶点和 e 条边的有向图,其邻接表表示中,所有顶点的边表中边的总数为()A eB 2eC e/2D n(e 1)9、以下关于哈夫曼树的描述,错误的是()A 哈夫曼树是带权路径长度最短的二叉树B 哈夫曼树中没有度为 1 的节点C 哈夫曼树中两个权值最小的节点一定是兄弟节点D 哈夫曼树中每个节点的权值等于其左右子树权值之和10、用邻接矩阵存储一个具有 n 个顶点的无向图时,矩阵的大小为()A nB n²C (n 1)²D (n + 1)²11、下列关于堆的描述,正确的是()A 大根堆中,每个节点的值都大于其左右子节点的值B 小根堆中,每个节点的值都小于其左右子节点的值C 堆一定是完全二叉树D 以上都对12、在一个具有 n 个单元的顺序存储的循环队列中,假定 front 和rear 分别为队头指针和队尾指针,则判断队满的条件是()A (rear + 1) % n == frontB (front + 1) % n == rearC rear == frontD rear == 013、已知一个图的邻接表如下所示,从顶点 1 出发,按深度优先搜索法进行遍历,则得到的一种可能的顶点序列为()|顶点|邻接顶点|||||1|2, 3||2|4, 5||3|5||4|6||5|6||6| |A 1, 2, 4, 6, 5, 3B 1, 2, 5, 3, 4, 6C 1, 2, 3, 5, 4, 6D 1, 3, 2, 4, 5, 614、对线性表进行二分查找时,要求线性表必须()A 以顺序方式存储,且元素按值有序排列B 以顺序方式存储,且元素按值无序排列C 以链式方式存储,且元素按值有序排列D 以链式方式存储,且元素按值无序排列15、以下算法的时间复杂度为 O(nlogn)的是()A 顺序查找B 折半查找C 冒泡排序D 归并排序16、若某链表最常用的操作是在最后一个节点之后插入一个节点和删除最后一个节点,则采用()存储方式最节省时间。
数据结构与算法试题库(附答案)
数据结构与算法试题库(附答案)一、单选题(共86题,每题1分,共86分)1.对于任意一棵高度为 5 且有 10 个结点的二叉树,若采用顺序存储结构保存,每个结点占 1 个存储单元(仅存放结点的数据信息),则存放该二叉树需要的存储单元的数量至少是:A、31B、10C、16D、15正确答案:A2.数组 A[0..6, 0..5] 的每个元素占 5 个字节,将其按列优先次序存储在起始地址为 1000 的内存单元中,则元素 A[5, 5] 的地址是( )。
A、1175B、1180C、1200D、1205正确答案:C3.一个有N个顶点的强连通图至少有多少条边?A、NB、N+1C、N(N−1)D、N−1正确答案:A4.用二分查找从100个有序整数中查找某数,最坏情况下需要比较的次数是:A、10B、7C、50D、99正确答案:B5.已知一个长度为16的顺序表L,其元素按关键字有序排列。
若采用二分查找法查找一个L中不存在的元素,则关键字的比较次数最多是:A、4B、7C、6D、5正确答案:D6.对空栈 S 进行 Push 和 Pop 操作,入栈序列为 a, b, c, d, e,经过 Push, Push, Pop, Push, Pop, Push, Push, Pop 操作后,得到的出栈序列是:A、b, c, eB、b, c, aC、b, a, cD、b, a, e正确答案:A7.若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用哪种存储方式最节省时间?A、双链表B、单循环链表C、顺序表D、带头结点的双循环链表正确答案:C8.下列各种数据结构中属于线性结构的有()A、树B、图C、队列D、集合正确答案:C9.如果AVL树的深度为6(空树的深度定义为−1),则此树最少有多少个结点?A、12B、20C、33D、64正确答案:C10.对N个记录进行快速排序,在最坏的情况下,其时间复杂度是:A、O(N2)B、O(N)C、O(N2logN)D、O(NlogN)正确答案:A11.稀疏矩阵采用三元组存储的时候,一般需要一个行逻辑链接的顺序表,用以指出每一行的第一个非零元素在三元组中的位置。
算法与数据结构期末考试卷
算法与数据结构期末考试卷一、选择题(每题2分,共20分)1. 在数据结构中,线性表的顺序存储结构被称为:A. 链表B. 栈C. 队列D. 数组2. 快速排序算法的时间复杂度在最坏情况下是:A. O(n)B. O(n log n)C. O(n^2)D. O(log n)3. 哈希表解决冲突最常用的方法是:A. 链地址法B. 线性探测法C. 二次探测法D. 双重哈希法4. 二叉树的遍历方式不包括:A. 前序遍历B. 中序遍历C. 后序遍历D. 广度优先遍历5. 堆排序算法是基于:A. 链表B. 栈C. 队列D. 堆...(此处省略其他选择题)二、简答题(每题10分,共20分)1. 请简述二叉搜索树与普通二叉树的区别。
2. 什么是递归?请举例说明递归在算法中的应用。
三、编程题(每题15分,共30分)1. 编写一个函数,实现对链表的反转。
2. 编写一个函数,实现快速排序算法。
四、综合应用题(每题15分,共30分)1. 描述如何使用哈希表实现一个简单的数据库索引系统。
2. 假设你有一个数组,其中包含了一些重复的数值,请编写一个算法来找出数组中出现次数超过数组长度一半的数值。
五、论述题(每题15分,共15分)1. 论述动态规划与贪心算法的区别,并给出一个动态规划问题的例子。
六、附加题(10分,可选做)1. 请设计一个算法,用于检测一个字符串是否是回文。
如果字符串是回文,请返回True,否则返回False。
注意:本试卷中所有题目的答案必须以书面形式给出,编程题需要提供完整的代码实现。
祝各位考生考试顺利,取得优异成绩。
数据结构与算法期末考试复习试题
《数据结构与算法》复习题一、选择题。
1.在数据结构中,从逻辑上可以把数据结构分为 C 。
A.动态结构和静态结构 B.紧凑结构和非紧凑结构C.线性结构和非线性结构 D.内部结构和外部结构2.数据结构在计算机内存中的表示是指 A 。
A.数据的存储结构 B.数据结构 C.数据的逻辑结构 D.数据元素之间的关系3.在数据结构中,与所使用的计算机无关的是数据的 A 结构。
A.逻辑 B.存储 C.逻辑和存储 D.物理4.在存储数据时,通常不仅要存储各数据元素的值,而且还要存储 C 。
A.数据的处理方法 B.数据元素的类型C.数据元素之间的关系 D.数据的存储方法5.在决定选取何种存储结构时,一般不考虑 A 。
A.各结点的值如何 B.结点个数的多少C.对数据有哪些运算 D.所用的编程语言实现这种结构是否方便。
6.以下说法正确的是 D 。
A.数据项是数据的基本单位B.数据元素是数据的最小单位C.数据结构是带结构的数据项的集合D.一些表面上很不相同的数据可以有相同的逻辑结构7.算法分析的目的是 C ,算法分析的两个主要方面是 A 。
(1)A.找出数据结构的合理性 B.研究算法中的输入和输出的关系C.分析算法的效率以求改进 C.分析算法的易读性和文档性(2)A.空间复杂度和时间复杂度 B.正确性和简明性C.可读性和文档性 D.数据复杂性和程序复杂性8.下面程序段的时间复杂度是 O(n2) 。
s =0;for( I =0; i<n; i++)for(j=0;j<n;j++)s +=B[i][j]; sum = s ;9.下面程序段的时间复杂度是 O(n*m) 。
for( i =0; i<n; i++)for(j=0;j<m;j++)A[i][j] = 0;10.下面程序段的时间复杂度是 O(log3n) 。
i = 0;while(i<=n)i = i * 3;11.在以下的叙述中,正确的是 B 。
数据结构与算法试题库(含参考答案)
数据结构与算法试题库(含参考答案)一、单选题(共86题,每题1分,共86分)1.在快速排序的一趟划分过程中,当遇到与基准数相等的元素时,如果左指针停止移动,而右指针在同样情况下却不停止移动,那么当所有元素都相等时,算法的时间复杂度是多少?A、O(N2)B、O(N)C、O(NlogN)D、O(logN)正确答案:A2.在一个不带头结点的非空链式队列中,假设f和r分别为队头和队尾指针,则插入s所指的结点运算是( )。
A、f->next=s; f=s;B、s->next=s; r=s;C、s->next=f; f=s;D、r->next=s; r=s;正确答案:D3.若借助堆栈将中缀表达式a+b*c+(d*e+f)*g转换为后缀表达式,当读入f时,堆栈里的内容是什么(按堆栈自底向上顺序)?A、++(+B、+(*+C、+(+D、abcde正确答案:C4.二叉树的高度若根节点为高度1,一棵具有 1025 个结点的二叉树的高度为▁▁▁▁▁ 。
A、11~1025 之间B、10~1024 之间C、11D、10正确答案:A5.已知一个长度为16的顺序表L,其元素按关键字有序排列。
若采用二分查找法查找一个L中不存在的元素,则关键字的比较次数最多是:A、7B、5C、6D、4正确答案:B6.设有图的数据逻辑结构 B=(K,R),其中顶点集 K={k1,k2,⋯,k9},有向边集R={<k1,k3>,<k1,k8>,<k2,k3>,<k2,k4>,<k2,k5>,<k3,k9>,<k5,k6>,<k8, k9>,<k9,k7>,<k4,k7>,<k4,k6>}。
以下哪个选项不是对应DAG图的拓扑序列?A、k1,k2,k3,k4,k5,k6,k8,k9,k7B、k2,k5,k1,k4,k6,k8,k3,k9,k7C、k2,k4,k5,k6,k7,k1,k3,k8,k9D、k1,k8,k2,k3,k9,k4,k7,k5,k6正确答案:C7.一棵满二叉树中127个节点,其中叶子节点的个数是()A、64B、不确定C、65D、63正确答案:A8.具有5个顶点的有向完全图有多少条弧?A、20B、16C、25D、10正确答案:A9.设有一组关键字 { 29,01, 13,15,56,20,87,27,69,9,10,74 },散列函数为 H(key)=key%17,采用线性探测方法解决冲突。
算法与数据结构试题及答案
数据结构试卷〔一〕一、单选题〔每题2 分,共20分〕1.栈和队列的共同特点是< >.A.只允许在端点处插入和删除元素B.都是先进后出C.都是先进先出D.没有共同点2.用方式存储的队列,在进行插入运算时< >.A. 仅修改头指针B. 头、尾指针都要修改C. 仅修改尾指针D.头、尾指针可能都要修改3.以下数据结构中哪一个是非线性结构?< >A. 队列B.栈C. 线性表D. 二叉树4.设有一个二维数组A[m][n],假设A[0][0]存放位置在644<10>,A[2][2]存放位置在676<10>,每个元素占一个空间,问A[3][3]<10>存放在什么位置?脚注<10>表示用10进制表示.A.688 B.678 C.692 D.6965.树最适合用来表示< >.A.有序数据元素B.无序数据元素C.元素之间具有分支层次关系的数据D.元素之间无联系的数据6.二叉树的第k层的结点数最多为< >.A.2k-1 B.2K+1 C.2K-1 D. 2k-17.若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A[3]的比较序列的下标依次为< >A. 1,2,3B. 9,5,2,3C. 9,5,3D. 9,4,2,38.对n个记录的文件进行快速排序,所需要的辅助存储空间大致为A. O〔1〕B. O〔n〕C. O〔1og2n〕D. O〔n2〕9.对于线性表〔7,34,55,25,64,46,20,10〕进行散列存储时,若选用H〔K〕=K %9作为散列函数,则散列地址为1的元素有〔〕个,A.1 B.2 C.3 D.410.设有6个结点的无向图,该图至少应有< >条边才能确保是一个连通图.A.5B.6C.7D.8二、填空题〔每空1分,共26分〕1.通常从四个方面评价算法的质量:_________、_________、_________和_________.2.一个算法的时间复杂度为<n3+n2log2n+14n>/n2,其数量级表示为________.3.假定一棵树的广义表表示为A〔C,D〔E,F,G〕,H〔I,J〕〕,则树中所含的结点数为__________个,树的深度为___________,树的度为_________.4.后缀算式9 2 3 +- 10 2 / -的值为__________.中缀算式〔3+4X〕-2Y/3对应的后缀算式为_______________________________.5.若用链表存储一棵二叉树时,每个结点除数据域外,还有指向左孩子和右孩子的两个指针.在这种存储结构中,n个结点的二叉树共有________个指针域,其中有________个指针域是存放了地址,有________________个指针是空指针.6.对于一个具有n个顶点和e条边的有向图和无向图,在其对应的邻接表中,所含边结点分别有_______个和________个.7.AOV网是一种___________________的图.8.在一个具有n个顶点的无向完全图中,包含有________条边,在一个具有n个顶点的有向完全图中,包含有________条边.9.假定一个线性表为<12,23,74,55,63,40>,若按Key % 4条件进行划分,使得同一余数的元素成为一个子表,则得到的四个子表分别为____________________________、___________________、_______________________和__________________________. 10.向一棵B_树插入元素的过程中,若最终引起树根结点的分裂,则新树比原树的高度___________.11.在堆排序的过程中,对任一分支结点进行筛运算的时间复杂度为________,整个堆排序过程的时间复杂度为________.12.在快速排序、堆排序、归并排序中,_________排序是稳定的.三、计算题〔每题6 分,共24分〕1.在如下数组A中存储了一个线性表,表头指针为A [0].next,试写出该线性表.datanext2.3.已知一个图的顶点集V和边集E分别为:V={1,2,3,4,5,6,7};E={<1,2>3,<1,3>5,<1,4>8,<2,5>10,<2,3>6,<3,4>15,<3,5>12,<3,6>9,<4,6>4,<4,7>20,<5,6>18,<6,7>25};用克鲁斯卡尔算法得到最小生成树,试写出在最小生成树中依次得到的各条边.4.画出向小根堆中加入数据4, 2, 5, 8, 3时,每加入一个数据后堆的变化.四、阅读算法〔每题7分,共14分〕1.LinkList mynote<LinkList L>{//L是不带头结点的单链表的头指针if<L&&L->next>{q=L;L=L->next;p=L;S1:while<p->next> p=p->next;S2:p->next=q;q->next=NULL;}return L;}请回答下列问题:〔1〕说明语句S1的功能;〔2〕说明语句组S2的功能;〔3〕设链表表示的线性表为〔a1,a2, …,a n〕,写出算法执行后的返回值所表示的线性表.2.void ABC<BTNode * BT>{if BT {ABC <BT->left>;ABC <BT->right>;cout<<BT->data<<' ';}}该算法的功能是:五、算法填空〔共8分〕二叉搜索树的查找——递归算法:bool Find<BTreeNode* BST,ElemType& item>{if <BST==NULL>return false; //查找失败else {if <item==BST->data>{item=BST->data;//查找成功return ___________;}else if<item<BST->data>return Find<______________,item>;else return Find<_______________,item>;}//if}六、编写算法〔共8分〕统计出单链表HL中结点的值等于给定值X的结点数.int CountX<LNode* HL,ElemType x>数据结构试卷〔二〕一、选择题<24分>1.下面关于线性表的叙述错误的是〔〕.<A> 线性表采用顺序存储必须占用一片连续的存储空间<B> 线性表采用链式存储不必占用一片连续的存储空间<C> 线性表采用链式存储便于插入和删除操作的实现<D> 线性表采用顺序存储便于插入和删除操作的实现2.设哈夫曼树中的叶子结点总数为m,若用二叉链表作为存储结构,则该哈夫曼树中总共有〔〕个空指针域.<A> 2m-1 <B>2m <C>2m+1 <D>4m3.设顺序循环队列Q[0:M-1]的头指针和尾指针分别为F和R,头指针F总是指向队头元素的前一位置,尾指针R总是指向队尾元素的当前位置,则该循环队列中的元素个数为〔〕.<A> R-F <B> F-R <C> <R-F+M>%M <D> <F-R+M>%M4.设某棵二叉树的中序遍历序列为ABCD,前序遍历序列为CABD,则后序遍历该二叉树得到序列为〔〕.<A> BADC<B>BCDA<C> CDAB <D> CBDA5.设某完全无向图中有n个顶点,则该完全无向图中有〔〕条边.<A> n<n-1>/2 <B> n<n-1> <C> n2<D> n2-16.设某棵二叉树中有2000个结点,则该二叉树的最小高度为〔〕.<A> 9 <B> 10 <C> 11 <D> 127.设某有向图中有n个顶点,则该有向图对应的邻接表中有〔〕个表头结点.<A> n-1 <B> n <C> n+1 <D> 2n-18.设一组初始记录关键字序列<5,2,6,3,8>,以第一个记录关键字5为基准进行一趟快速排序的结果为〔〕.<A> 2,3,5,8,6 <B> 3,2,5,8,6<C> 3,2,5,6,8 <D> 2,3,6,5,8二、填空题<24分>1.为了能有效地应用HASH查找技术,必须解决的两个问题是____________________和__________________________.2.下面程序段的功能实现数据x进栈,要求在下划线处填上正确的语句.typedef struct {int s[100]; int top;} sqstack;void push<sqstack &stack,int x>{if <stack.top==m-1> printf<"overflow〞>;else {____________________;_________________;}}3.中序遍历二叉排序树所得到的序列是___________序列〔填有序或无序〕.4.快速排序的最坏时间复杂度为___________,平均时间复杂度为__________.5.设某棵二叉树中度数为0的结点数为N0,度数为1的结点数为N1,则该二叉树中度数为2的结点数为_________;若采用二叉链表作为该二叉树的存储结构,则该二叉树中共有_______个空指针域.6.设某无向图中顶点数和边数分别为n和e,所有顶点的度数之和为d,则e=_______.7.设一组初始记录关键字序列为<55,63,44,38,75,80,31,56>,则利用筛选法建立的初始堆为___________________________.8.已知一有向图的邻接表存储结构如下:从顶点1出发,DFS遍历的输出序列是,BFS遍历的输出序列是三、应用题<36分>1.设一组初始记录关键字序列为<45,80,48,40,22,78>,则分别给出第4趟简单选择排序和第4趟直接插入排序后的结果.2.设指针变量p指向双向链表中结点A,指针变量q指向被插入结点B,要求给出在结点A 的后面插入结点B的操作序列〔设双向链表中结点的两个指针域分别为llink和rlink〕. 3.设一组有序的记录关键字序列为<13,18,24,35,47,50,62,83,90>,查找方法用二分查找,要求计算出查找关键字62时的比较次数并计算出查找成功时的平均查找长度.4.设一棵树T中边的集合为{<A,B>,<A,C>,<A,D>,<B,E>,<C,F>,<C,G>},要求用孩子兄弟表示法〔二叉链表〕表示出该树的存储结构并将该树转化成对应的二叉树.5.设有无向图G,要求给出用普里姆算法构造最小生成树所走过的边的集合.6.设有一组初始记录关键字为<45,80,48,40,22,78>,要求构造一棵二叉排序树并给出构造过程.四、算法设计题<16分>1.设有一组初始记录关键字序列〔K1,K2,…,K n〕,要求设计一个算法能够在O<n>的时间复杂度内将线性表划分成两部分,其中左半部分的每个关键字均小于K i,右半部分的每个关键字均大于等于K i.2.设有两个集合A和集合B,要求设计生成集合C=A∩B的算法,其中集合A、B和C用链式存储结构表示.数据结构试卷〔三〕一、选择题<每题1分,共20分>1.设某数据结构的二元组形式表示为A=<D,R>,D={01,02,03,04,05,06,07,08,09},R={r},r={<01,02>,<01,03>,<01,04>,<02,05>,<02 ,06>,<03,07>,<03,08>,<03,09>},则数据结构A是〔〕.<A> 线性结构<B> 树型结构<C> 物理结构<D> 图型结构2.下面程序的时间复杂为〔〕for〔i=1,s=0;i<=n;i++〕{t=1;for<j=1;j<=i;j++> t=t*j;s=s+t;}<A> O<n> <B> O<n2><C> O<n3><D> O<n4>3.设指针变量p指向单链表中结点A,若删除单链表中结点A,则需要修改指针的操作序列为〔〕.<A> q=p->next;p->data=q->data;p->next=q->next;free<q>;<B> q=p->next;q->data=p->data;p->next=q->next;free<q>;<C> q=p->next;p->next=q->next;free<q>;<D> q=p->next;p->data=q->data;free<q>;4.设有n个待排序的记录关键字,则在堆排序中需要〔〕个辅助记录单元.<A> 1 <B> n <C> nlog2n <D> n25.设一组初始关键字记录关键字为<20,15,14,18,21,36,40,10>,则以20为基准记录的一趟快速排序结束后的结果为< >.<A> 10,15,14,18,20,36,40,21<B> 10,15,14,18,20,40,36,21<C> 10,15,14,20,18,40,36,2l<D> 15,10,14,18,20,36,40,216.设二叉排序树中有n个结点,则在二叉排序树的平均平均查找长度为〔〕.<A> O<1> <B> O<log2n> <C> <D> O<n2>7.设无向图G中有n个顶点e条边,则其对应的邻接表中的表头结点和表结点的个数分别为〔〕.<A> n,e <B> e,n<C> 2n,e<D>n,2e8. 设某强连通图中有n个顶点,则该强连通图中至少有〔〕条边.<A> n<n-1><B> n+1<C> n<D> n<n+1>9.设有5000个待排序的记录关键字,如果需要用最快的方法选出其中最小的10个记录关键字,则用下列〔〕方法可以达到此目的.<A>快速排序<B>堆排序<C>归并排序<D>插入排序10.下列四种排序中〔〕的空间复杂度最大.<A>插入排序<B>冒泡排序<C>堆排序<D>归并排序二、填空殖<每空1分共20分>1.数据的物理结构主要包括_____________和______________两种情况.2.设一棵完全二叉树中有500个结点,则该二叉树的深度为__________;若用二叉链表作为该完全二叉树的存储结构,则共有___________个空指针域.3.设输入序列为1、2、3,则经过栈的作用后可以得到___________种不同的输出序列.4.设有向图G用邻接矩阵A[n][n]作为存储结构,则该邻接矩阵中第i行上所有元素之和等于顶点i的________,第i列上所有元素之和等于顶点i的________.5.设哈夫曼树中共有n个结点,则该哈夫曼树中有________个度数为1的结点.6.设有向图G中有n个顶点e条有向边,所有的顶点入度数之和为d,则e和d的关系为_________.7.__________遍历二叉排序树中的结点可以得到一个递增的关键字序列〔填先序、中序或后序〕.8.设查找表中有100个元素,如果用二分法查找方法查找数据元素X,则最多需要比较________次就可以断定数据元素X是否在查找表中.9.不论是顺序存储结构的栈还是链式存储结构的栈,其入栈和出栈操作的时间复杂度均为____________.10.设有n个结点的完全二叉树,如果按照从自上到下、从左到右从1开始顺序编号,则第i个结点的双亲结点编号为____________,右孩子结点的编号为___________.11.设一组初始记录关键字为<72,73,71,23,94,16,5>,则以记录关键字72为基准的一趟快速排序结果为___________________________.12.设有向图G中有向边的集合E={<1,2>,<2,3>,<1,4>,<4,2>,<4,3>},则该图的一种拓扑序列为____________________.13.下列算法实现在顺序散列表中查找值为x的关键字,请在下划线处填上正确的语句.struct record{int key; int others;};int hashsqsearch<struct record hashtable[ ],int k>{int i,j; j=i=k % p;while <hashtable[j].key!=k&&hashtable[j].flag!=0>{j=<____> %m; if <i==j> return<-1>;}if <_______________________ > return<j>; else return<-1>;}14.下列算法实现在二叉排序树上查找关键值k,请在下划线处填上正确的语句.typedef struct node{int key; struct node *lchild; struct node *rchild;}bitree;bitree *bstsearch<bitree *t, int k>{if <t==0 > return<0>;else while <t!=0>if <t->key==k>_____________;else if <t->key>k> t=t->lchild; else_____________;}三、计算题<每题10分,共30分>1.已知二叉树的前序遍历序列是AEFBGCDHIKJ,中序遍历序列是EFAGBCHKIJD,画出此二叉树,并画出它的后序线索二叉树.2.已知待散列的线性表为〔36,15,40,63,22〕,散列用的一维地址空间为[0..6],假定选用的散列函数是H〔K〕= K mod 7,若发生冲突采用线性探查法处理,试:〔1〕计算出每一个元素的散列地址并在下图中填写出散列表:` 0〔23.已知序列〔10,18,4,3,6,12,1,9,18,8〕请用快速排序写出每一趟排序的结果.四、算法设计题<每题15分,共30分>1.设计在单链表中删除值相同的多余结点的算法.2.设计一个求结点x在二叉树中的双亲结点算法.数据结构试卷〔四〕一、选择题<每题1分共 20分>1.设一维数组中有n个数组元素,则读取第i个数组元素的平均时间复杂度为〔〕.<A> O<n> <B> O<nlog2n> <C> O<1> <D> O<n2>2.设一棵二叉树的深度为k,则该二叉树中最多有〔〕个结点.<A> 2k-1 <B> 2k<C> 2k-1<D> 2k-13.设某无向图中有n个顶点e条边,则该无向图中所有顶点的入度之和为〔〕.<A> n <B> e <C> 2n <D> 2e4.在二叉排序树中插入一个结点的时间复杂度为〔〕.<A> O<1> <B> O<n> <C> O<log2n> <D> O<n2>5.设某有向图的邻接表中有n个表头结点和m个表结点,则该图中有〔〕条有向边.<A> n <B> n-1 <C> m <D> m-16.设一组初始记录关键字序列为<345,253,674,924,627>,则用基数排序需要进行〔〕趟的分配和回收才能使得初始关键字序列变成有序序列.<A> 3 <B> 4<C> 5<D> 87.设用链表作为栈的存储结构则退栈操作〔〕.<A> 必须判别栈是否为满<B> 必须判别栈是否为空<C> 判别栈元素的类型<D> 对栈不作任何判别8.下列四种排序中〔〕的空间复杂度最大.<A> 快速排序<B> 冒泡排序<C> 希尔排序<D> 堆9.设某二叉树中度数为0的结点数为N0,度数为1的结点数为N l,度数为2的结点数为N2,则下列等式成立的是〔〕.<A> N0=N1+1<B> N0=N l+N2<C> N0=N2+1<D> N0=2N1+l10.设有序顺序表中有n个数据元素,则利用二分查找法查找数据元素X的最多比较次数不超过〔〕.<A> log2n+1<B> log2n-1<C> log2n <D> log2<n+1>二、填空题<每空1分共 20分>1.设有n个无序的记录关键字,则直接插入排序的时间复杂度为________,快速排序的平均时间复杂度为_________.2.设指针变量p指向双向循环链表中的结点X,则删除结点X需要执行的语句序列为_________________________________________________________〔设结点中的两个指针域分别为llink和rlink〕.3.根据初始关键字序列<19,22,01,38,10>建立的二叉排序树的高度为____________. 4.深度为k的完全二叉树中最少有____________个结点.5.设初始记录关键字序列为<K1,K2,…,K n>,则用筛选法思想建堆必须从第______个元素开始进行筛选.6.设哈夫曼树中共有99个结点,则该树中有_________个叶子结点;若采用二叉链表作为存储结构,则该树中有_____个空指针域.7.设有一个顺序循环队列中有M个存储单元,则该循环队列中最多能够存储________个队列元素;当前实际存储________________个队列元素〔设头指针F指向当前队头元素的前一个位置,尾指针指向当前队尾元素的位置〕.8.设顺序线性表中有n个数据元素,则第i个位置上插入一个数据元素需要移动表中_______个数据元素;删除第i个位置上的数据元素需要移动表中_______个元素. 9.设一组初始记录关键字序列为<20,18,22,16,30,19>,则以20为中轴的一趟快速排序结果为______________________________.10.设一组初始记录关键字序列为<20,18,22,16,30,19>,则根据这些初始关键字序列建成的初始堆为________________________.11.设某无向图G中有n个顶点,用邻接矩阵A作为该图的存储结构,则顶点i和顶点j互为邻接点的条件是______________________.12.设无向图对应的邻接矩阵为A,则A中第i上非0元素的个数_________第i列上非0元素的个数〔填等于,大于或小于〕.13.设前序遍历某二叉树的序列为ABCD,中序遍历该二叉树的序列为BADC,则后序遍历该二叉树的序列为_____________.14.设散列函数H<k>=k mod p,解决冲突的方法为链地址法.要求在下列算法划线处填上正确的语句完成在散列表hashtalbe中查找关键字值等于k的结点,成功时返回指向关键字的指针,不成功时返回标志0.typedef struct node {int key; struct node *next;} lklist;void createlkhash<lklist *hashtable[ ]>{int i,k; lklist *s;for<i=0;i<m;i++>_____________________;for<i=0;i<n;i++>{s=<lklist *>malloc<sizeof<lklist>>; s->key=a[i];k=a[i] % p; s->next=hashtable[k];_______________________;}}三、计算题<每题10分,共30分>1、画出广义表LS=<< > , <e> , <a , <b , c , d >>>的头尾链表存储结构.2、下图所示的森林:<1>求树〔a〕的先根序列和后根序列;<2> 求森林先序序列和中序序列;〔3〕将此森林转换为相应的二叉树;3、设散列表的地址X围是[ 0..9 ],散列函数为H〔key〕= 〔key 2 +2〕MOD 9,并采用链表处理冲突,请画出元素7、4、5、3、6、2、8、9依次插入散列表的存储结构.四、算法设计题<每题10分,共30分>1.设单链表中有仅三类字符的数据元素<大写字母、数字和其它字符>,要求利用原单链表中结点空间设计出三个单链表的算法,使每个单链表只包含同类字符.2.设计在链式存储结构上交换二叉树中所有结点左右子树的算法.3.在链式存储结构上建立一棵二叉排序树.数据结构试卷〔五〕一、选择题<20分>1.数据的最小单位是〔〕.<A> 数据项<B> 数据类型<C> 数据元素<D> 数据变量2.设一组初始记录关键字序列为<50,40,95,20,15,70,60,45>,则以增量d=4的一趟希尔排序结束后前4条记录关键字为〔〕.<A> 40,50,20,95 <B> 15,40,60,20<C> 15,20,40,45 <D> 45,40,15,203.设一组初始记录关键字序列为<25,50,15,35,80,85,20,40,36,70>,其中含有5个长度为2的有序子表,则用归并排序的方法对该记录关键字序列进行一趟归并后的结果为〔〕.<A> 15,25,35,50,20,40,80,85,36,70<B> 15,25,35,50,80,20,85,40,70,36<C> 15,25,35,50,80,85,20,36,40,70<D> 15,25,35,50,80,20,36,40,70,854.函数substr<"DATASTRUCTURE〞,5,9>的返回值为〔〕.<A> "STRUCTURE〞<B> "DATA〞<C> "ASTRUCTUR〞<D> "DATASTRUCTURE〞5.设一个有序的单链表中有n个结点,现要求插入一个新结点后使得单链表仍然保持有序,则该操作的时间复杂度为〔〕.<A> O<log2n> <B> O<1> <C> O<n2> <D> O<n>6.设一棵m叉树中度数为0的结点数为N0,度数为1的结点数为N l,……,度数为m的结点数为Nm,则N0=〔〕.<A> N l+N2+……+Nm <B> l+N2+2N3+3N4+……+<m-1>Nm<C> N2+2N3+3N4+……+<m-1>Nm <D> 2N l+3N2+……+<m+1>Nm7.设有序表中有1000个元素,则用二分查找查找元素X最多需要比较〔〕次.<A> 25 <B> 10<C> 7 <D> 18.设连通图G中的边集E={<a,b>,<a,e>,<a,c>,<b,e>,<e,d>,<d,f>,<f,c>},则从顶点a出发可以得到一种深度优先遍历的顶点序列为〔〕.<A> abedfc <B> acfebd <C> aebdfc <D> aedfcb9.设输入序列是1、2、3、……、n,经过栈的作用后输出序列的第一个元素是n,则输出序列中第i个输出元素是〔〕.<A> n-i <B> n-1-i <C> n+1-i <D> 不能确定10 设一组初始记录关键字序列为<45,80,55,40,42,85>,则以第一个记录关键字45为基准而得到一趟快速排序的结果是〔〕.<A> 40,42,45,55,80,83 <B> 42,40,45,80,85,88<C> 42,40,45,55,80,85 <D> 42,40,45,85,55,80二、填空题<共20分>1.设有一个顺序共享栈S[0:n-1],其中第一个栈项指针top1的初值为-1,第二个栈顶指针top2的初值为n,则判断共享栈满的条件是____________________.2.在图的邻接表中用顺序存储结构存储表头结点的优点是____________________.3.设有一个n阶的下三角矩阵A,如果按照行的顺序将下三角矩阵中的元素〔包括对角线上元素〕存放在n<n+1>个连续的存储单元中,则A[i][j]与A[0][0]之间有_______个数据元素.4.栈的插入和删除只能在栈的栈顶进行,后进栈的元素必定先出栈,所以又把栈称为__________表;队列的插入和删除运算分别在队列的两端进行,先进队列的元素必定先出队列,所以又把队列称为_________表.5.设一棵完全二叉树的顺序存储结构中存储数据元素为ABCDEF,则该二叉树的前序遍历序列为___________,中序遍历序列为___________,后序遍历序列为___________.6.设一棵完全二叉树有128个结点,则该完全二叉树的深度为________,有__________个叶子结点.7.设有向图G的存储结构用邻接矩阵A来表示,则A中第i行中所有非零元素个数之和等于顶点i的________,第i列中所有非零元素个数之和等于顶点i的__________.8.设一组初始记录关键字序列<k1,k2,……,k n>是堆,则对i=1,2,…,n/2而言满足的条件为_______________________________.9.下面程序段的功能是实现冒泡排序算法,请在下划线处填上正确的语句.void bubble<int r[n]>{for<i=1;i<=n-1; i++>{for<exchange=0,j=0; j<_____________;j++>if<r[j]>r[j+1]>{temp=r[j+1];______________;r[j]=temp;exchange=1;} if <exchange==0> return;}}10.下面程序段的功能是实现二分查找算法,请在下划线处填上正确的语句.struct record{int key; int others;};int bisearch<struct record r[ ], int k>{int low=0,mid,high=n-1;while<low<=high>{________________________________;if<r[mid].key==k> return<mid+1>;else if<____________> high=mid-1;else low=mid+1;}return<0>;}三、应用题<32分>1.设某棵二叉树的中序遍历序列为DBEAC,前序遍历序列为ABDEC,要求给出该二叉树的的后序遍历序列.2.设无向图G〔如右图所示〕,给出该图的最小生成树上边的集合并计算最小生成树各边上的权值之和.3.设一组初始记录关键字序列为<15,17,18,22,35,51,60>,要求计算出成功查找时的平均查找长度.4.设散列表的长度为8,散列函数H<k>=k mod 7,初始记录关键字序列为<25,31,8,27,13,68>,要求分别计算出用线性探测法和链地址法作为解决冲突方法的平均查找长度.四、算法设计题<28分>1.设计判断两个二叉树是否相同的算法.2.设计两个有序单链表的合并排序算法.数据结构试卷〔六〕一、选择题<30分>1.设一组权值集合W={2,3,4,5,6},则由该权值集合构造的哈夫曼树中带权路径长度之和为〔〕.<A> 20 <B> 30 <C> 40 <D> 452.执行一趟快速排序能够得到的序列是〔〕.<A> [41,12,34,45,27]55[72,63]<B> [45,34,12,41]55[72,63,27]<C> [63,12,34,45,27]55[41,72]<D> [12,27,45,41]55 [34,63,72]3.设一条单链表的头指针变量为head且该链表没有头结点,则其判空条件是〔〕.<A> head==0 <B> head->next==0<C> head->next==head <D> head!=04.时间复杂度不受数据初始状态影响而恒为O<nlog2n>的是〔〕.<A> 堆排序<B> 冒泡排序<C> 希尔排序<D> 快速排序5.设二叉树的先序遍历序列和后序遍历序列正好相反,则该二叉树满足的条件是〔〕.<A> 空或只有一个结点<B> 高度等于其结点数<C> 任一结点无左孩子<D> 任一结点无右孩子6.一趟排序结束后不一定能够选出一个元素放在其最终位置上的是〔〕.<A> 堆排序<B> 冒泡排序<C> 快速排序<D> 希尔排序7.设某棵三叉树中有40个结点,则该三叉树的最小高度为〔〕.<A> 3 <B> 4 <C> 5 <D> 68.顺序查找不论在顺序线性表中还是在链式线性表中的时间复杂度为〔〕.<A> O<n> <B> O<n2> <C> O<n1/2> <D> O<1og2n>9.二路归并排序的时间复杂度为〔〕.<A> O<n> <B> O<n2> <C> O<nlog2n> <D> O<1og2n>10. 深度为k的完全二叉树中最少有〔〕个结点.<A> 2k-1-1 <B> 2k-1<C> 2k-1+1 <D> 2k-111.设指针变量front表示链式队列的队头指针,指针变量rear表示链式队列的队尾指针,指针变量s指向将要入队列的结点X,则入队列的操作序列为〔〕.<A>front->next=s;front=s;<B>s->next=rear;rear=s;<C>rear->next=s;rear=s;<D>s->next=front;front=s;12.设某无向图中有n个顶点e条边,则建立该图邻接表的时间复杂度为〔〕.<A> O<n+e> <B> O<n2> <C> O<ne> <D> O<n3>13.设某哈夫曼树中有199个结点,则该哈夫曼树中有〔〕个叶子结点.<A> 99 <B> 100 <C> 101 <D> 10214.设二叉排序树上有n个结点,则在二叉排序树上查找结点的平均时间复杂度为〔〕.<A> O<n> <B> O<n2> <C> O<nlog2n> <D> O<1og2n>15.设用邻接矩阵A表示有向图G的存储结构,则有向图G中顶点i的入度为〔〕.<A> 第i行非0元素的个数之和<B> 第i列非0元素的个数之和<C> 第i行0元素的个数之和<D> 第i列0元素的个数之和二、判断题<20分>1.调用一次深度优先遍历可以访问到图中的所有顶点.〔〕2.分块查找的平均查找长度不仅与索引表的长度有关,而且与块的长度有关.〔〕3.冒泡排序在初始关键字序列为逆序的情况下执行的交换次数最多.〔〕4.满二叉树一定是完全二叉树,完全二叉树不一定是满二叉树.〔〕5.设一棵二叉树的先序序列和后序序列,则能够唯一确定出该二叉树的形状.〔〕6.层次遍历初始堆可以得到一个有序的序列.〔〕7.设一棵树T可以转化成二叉树BT,则二叉树BT中一定没有右子树.〔〕8.线性表的顺序存储结构比链式存储结构更好.〔〕9.中序遍历二叉排序树可以得到一个有序的序列.〔〕10.快速排序是排序算法中平均性能最好的一种排序.〔〕三、填空题<30分>1.for<i=1,t=1,s=0;i<=n;i++> {t=t*i;s=s+t;}的时间复杂度为_________.2.设指针变量p指向单链表中结点A,指针变量s指向被插入的新结点X,则进行插入操作的语句序列为__________________________〔设结点的指针域为next〕.3.设有向图G的二元组形式表示为G =〔D,R〕,D={1,2,3,4,5},R={r},r={<1,2>,<2,4>,<4,5>,<1,3>,<3,2>,<3,5>},则给出该图的一种拓扑排序序列__________.4.设无向图G中有n个顶点,则该无向图中每个顶点的度数最多是_________.5.设二叉树中度数为0的结点数为50,度数为1的结点数为30,则该二叉树中总共有_______个结点数.6.设F和R分别表示顺序循环队列的头指针和尾指针,则判断该循环队列为空的条件为_____________________.7.设二叉树中结点的两个指针域分别为lchild和rchild,则判断指针变量p所指向的结点为叶子结点的条件是_____________________________________________.8.简单选择排序和直接插入排序算法的平均时间复杂度为___________.9.快速排序算法的空间复杂度平均情况下为__________,最坏的情况下为__________.10.散列表中解决冲突的两种方法是_____________和_____________.四、算法设计题<20分>1.设计在顺序有序表中实现二分查找的算法.。
数据结构与算法题库(附参考答案)
数据结构与算法题库(附参考答案)一、单选题(共86题,每题1分,共86分)1.在快速排序的一趟划分过程中,当遇到与基准数相等的元素时,如果左右指针都不停止移动,那么当所有元素都相等时,算法的时间复杂度是多少?A、O(NlogN)B、O(N)C、O(N2)D、O(logN)正确答案:C2.一棵有 1001 个结点的完全二叉树,其叶子结点数为▁▁▁▁▁ 。
A、254B、250C、501D、500正确答案:C3.对于一个具有N个顶点的无向图,若采用邻接矩阵表示,则该矩阵的大小是:A、(N−1)2B、NC、N2D、N−1正确答案:C4.在有n(>1)个元素的最大堆(大根堆)中,最小元的数组下标可以是:A、⌊n/2⌋−1B、⌊n/2⌋+2C、1D、⌊n/2⌋正确答案:B5.一棵非空二叉树,若先序遍历与中序遍历的序列相同,则该二叉树▁▁▁▁▁ 。
A、所有结点均无左孩子B、所有结点均无右孩子C、只有一个叶子结点D、为任意二叉树正确答案:A6.度量结果集相关性时,如果准确率很高而召回率很低,则说明:A、大部分检索出的文件都是相关的,但还有很多相关文件没有被检索出来B、大部分相关文件被检索到,但基准数据集不够大C、大部分检索出的文件都是相关的,但基准数据集不够大D、大部分相关文件被检索到,但很多不相关的文件也在检索结果里正确答案:A7.若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点。
则采用哪种存储方式最节省运算时间?A、单循环链表B、带头结点的双循环链表C、单链表D、双链表正确答案:B8.设数组 S[ ]={93, 946, 372, 9, 146, 151, 301, 485, 236, 327, 43, 892},采用最低位优先(LSD)基数排序将 S 排列成升序序列。
第1 趟分配、收集后,元素 372 之前、之后紧邻的元素分别是:A、43,892B、236,301C、301,892D、485,301正确答案:C9.在快速排序的一趟划分过程中,当遇到与基准数相等的元素时,如果左指针停止移动,而右指针在同样情况下却不停止移动,那么当所有元素都相等时,算法的时间复杂度是多少?A、O(NlogN)B、O(N2)C、O(N)D、O(logN)正确答案:B10.在快速排序的一趟划分过程中,当遇到与基准数相等的元素时,如果左右指针都会停止移动,那么当所有元素都相等时,算法的时间复杂度是多少?A、O(NlogN)B、O(N)C、O(logN)D、O(N2)正确答案:A11.如果AVL树的深度为6(空树的深度定义为−1),则此树最少有多少个结点?A、12B、20C、33D、64正确答案:C12.已知指针ha和hb分别是两个单链表的头指针,下列算法将这两个链表首尾相连在一起,并形成一个循环链表(即ha的最后一个结点链接hb 的第一个结点,hb的最后一个结点指向ha),返回ha作为该循环链表的头指针。
数据结构与算法分析-六套期末复习题(含答案)
试题一一、单项选择题〔每小题2分,共20分〕〔1〕以下数据结构中哪一个是线性结构?〔〕A〕有向图B〕队列C〕线索二叉树D〕B树〔2〕在一个单链表HL中,若要在当前由指针p指向的结点后面插入一个由q指向的结点,则执行如下〔〕语句序列。
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;〔3〕〔〕不是队列的基本运算。
A〕在队列第i个元素之后插入一个元素B〕从队头删除一个元素C〕判断一个队列是否为空D〕读取队头元素的值〔4〕字符A、B、C依次进入一个栈,按出栈的先后顺序组成不同的字符串,至多可以组成〔〕个不同的字符串。
A〕14 B〕5 C〕6 D〕8〔5〕由权值分别为3,8,6,2的叶子生成一棵哈夫曼树,它的带权路径长度为〔〕。
A〕11B〕35 C〕19 D〕53以下6-8题基于下图:〔6〕该二叉树结点的前序遍历的序列为〔〕。
A〕E、G、F、A、C、D、B B〕E、A、G、C、F、B、DC〕E、A、C、B、D、G、F D〕E、G、A、C、D、F、BC〕E、A、C、B、D、G、F D〕B、D、C、A、F、G、E〔8〕该二叉树的按层遍历的序列为〔〕。
A〕E、G、F、A、C、D、B B〕E、A、C、B、D、G、FC〕E、A、G、C、F、B、D D〕E、G、A、C、D、F、B〔9〕下面关于图的存储的叙述中正确的是〔〕。
A〕用邻接表法存储图,占用的存储空间大小只与图中边数有关,而与结点个数无关B〕用邻接表法存储图,占用的存储空间大小与图中边数和结点个数都有关C〕用邻接矩阵法存储图,占用的存储空间大小与图中结点个数和边数都有关D〕用邻接矩阵法存储图,占用的存储空间大小只与图中边数有关,而与结点个数无关〔10〕设有关键码序列(q,g,m,z,a,n,p,x,h),下面哪一个序列是从上述序列出发建堆的结果?〔〕A〕a,g,h,m,n,p,q,x,z B〕a,g,m,h,q,n,p,x,zC〕g,m,q,a,n,p,x,h,zD〕h,g,m,p,a,n,q,x,z二、〔本题8分〕对于序列{8,18,6,16,29,28},试写出堆顶元素最小的初始堆。
算法与数据结构重考复习题(0910)
i列1的元素之和 )。对于含n个顶点和e条边的图,采用邻接矩阵表示的空间复杂度为( O(n2) )。连通图
是指图中任意两个顶点之间(都连通的无向图 )。一个有n个顶点的无向连通图,它所包含的连通分量个数最
保持青春的秘诀,是有一颗不安分的心。
算法与数据结构重考复习题(0910)
一、单选题(斜体为答案)
1.数据结构被形式地定义为(D,R),其中D 是
A. 算法 B. 操作的集合 C. 数据元素的集合 D. 数据关系的集合
2.顺序表是线性表的
A. 顺序存储结构 B. 链式存储结构 C. 索引存储结构 D. 散列存储结构
5.已知栈的输入序列为1,2,3....,n,输出序列为a1,a2,...,an,a2=n的输出序列共有(n-1)种输出序列。
队列的特性是先入先出,栈的特性是(后入先出)。如果以链栈为存储结构,则出栈操作时必须判别(栈空 )。与顺序栈相比,链栈有一个明显的优势是( 不易出现栈满 )。
6.循环队列采用数组data[1..n]来存储元素的值,并用front和rear分别作为其头尾指针。为区分队列的满和空,约定:队中能够存放的元素个数最大为(n-l),也即至少有一个元素空间不用,则在任意时刻,至少可以知道一个空的元素的下标是(front) ;入队时,可用语句(rear=rear+1%n)求出新元素在数组data中的下标。
(3)双向链表:q=p->prior; temp=q->data; q->data=p->data;p->data=temp;
2.内存中一片连续空间(不妨设地址从1到m),提供给两个栈S1和S2使用,怎样分配这部分存储空间,使得对任意一个栈,仅当这部分全满时才发生上溢。(为了尽量利用空间,减少溢出的可能,可采用栈顶相向,栈底分设两端的存储方式,这样,对任何一个栈,仅当整个空间全满时才会发生上溢。)
数据结构与算法测试题+参考答案
数据结构与算法测试题+参考答案一、单选题(共80题,每题1分,共80分)1、某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用什么存储方式最节省运算时间?A、仅有头指针的单循环链表B、双链表C、仅有尾指针的单循环链表D、单链表正确答案:C2、数据结构研究的内容是()。
A、数据的逻辑结构B、数据的存储结构C、建立在相应逻辑结构和存储结构上的算法D、包括以上三个方面正确答案:D3、下列关于无向连通图特征的叙述中,正确的是:所有顶点的度之和为偶数边数大于顶点个数减1至少有一个顶点的度为1A、只有1B、1和2C、1和3D、只有2正确答案:A4、下面的程序段违反了算法的()原则。
void sam(){ int n=2;while (n%2==0) n+=2;printf(“%d”,n);}A、确定性B、可行性C、有穷性D、健壮性正确答案:C5、对任意给定的含 n (n>2) 个字符的有限集 S,用二叉树表示 S 的哈夫曼编码集和定长编码集,分别得到二叉树 T1 和 T2。
下列叙述中,正确的是:A、出现频次不同的字符在 T2 中处于相同的层B、出现频次不同的字符在 T1 中处于不同的层C、T1 的高度大于 T2 的高度D、T1 与 T2 的结点数相同正确答案:A6、数据序列{ 3,2,4,9,8,11,6,20 }只能是下列哪种排序算法的两趟排序结果?A、快速排序B、选择排序C、插入排序D、冒泡排序正确答案:A7、设散列表的地址区间为[0,16],散列函数为H(Key)=Key%17。
采用线性探测法处理冲突,并将关键字序列{ 26,25,72,38,8,18,59 }依次存储到散列表中。
元素59存放在散列表中的地址是:A、11B、9C、10D、8正确答案:A8、采用递归方式对顺序表进行快速排序,下列关于递归次数的叙述中,正确的是:A、每次划分后,先处理较短的分区可以减少递归次数B、递归次数与每次划分后得到的分区处理顺序无关C、递归次数与初始数据的排列次序无关D、每次划分后,先处理较长的分区可以减少递归次数正确答案:B9、以下数据结构中,()是非线性数据结构。
数据结构与算法题库(含参考答案)
数据结构与算法题库(含参考答案)一、单选题(共100题,每题1分,共100分)1、在一次校园活动中拍摄了很多数码照片,现需将这些照片整理到一个PowerPoint 演示文稿中,快速制作的最优操作方法是:A、创建一个 PowerPoint 相册文件。
B、创建一个 PowerPoint 演示文稿,然后批量插入图片。
C、创建一个 PowerPoint 演示文稿,然后在每页幻灯片中插入图片。
D、在文件夹中选中所有照片,然后单击鼠标右键直接发送到PowerPoint 演示文稿中。
正确答案:A2、下面对“对象”概念描述错误的是A、对象不具有封装性B、对象是属性和方法的封装体C、对象间的通信是靠消息传递D、一个对象是其对应类的实例正确答案:A3、设栈与队列初始状态为空。
首先A,B,C,D,E依次入栈,再F,G,H,I,J 依次入队;然后依次出队至队空,再依次出栈至栈空。
则输出序列为A、F,G,H,I,J,E,D,C,B,AB、E,D,C,B,A,J,I,H,G,FC、F,G,H,I,J,A,B,C,D,E,D、E,D,C,B,A,F,G,H,I,J正确答案:A4、设表的长度为 20。
则在最坏情况下,冒泡排序的比较次数为A、20B、19C、90D、190正确答案:D5、设二叉树的前序序列为 ABDEGHCFIJ,中序序列为 DBGEHACIFJ。
则后序序列为A、DGHEBIJFCAB、JIHGFEDCBAC、GHIJDEFBCAD、ABCDEFGHIJ正确答案:A6、Excel工作表B列保存了11位手机号码信息,为了保护个人隐私,需将手机号码的后 4 位均用“*”表示,以 B2 单元格为例,最优的操作方法是:A、=REPLACE(B2,7,4,"****")B、=REPLACE(B2,8,4,"****")C、=MID(B2,7,4,"****")D、=MID(B2,8,4,"****")第 10 组正确答案:B7、小金从网站上查到了最近一次全国人口普查的数据表格,他准备将这份表格中的数据引用到 Excel 中以便进一步分析,最优的操作方法是:A、通过 Excel 中的“自网站获取外部数据”功能,直接将网页上的表格导入到 Excel 工作表中。
数据结构与算法分析—期末复习题及答案
数据结构与算法分析—期末复习题及答案1. 简答题a) 什么是数据结构?数据结构是一种组织和存储数据的方法,它涉及到将数据元素以及它们之间的关系组织成一种特定的方式,以便于有效地访问和操作。
b) 数据结构的分类有哪些?数据结构可以分为线性结构和非线性结构。
线性结构包括数组、链表、栈和队列等;非线性结构包括树和图等。
c) 什么是算法?算法指的是完成特定任务或求解特定问题的一系列步骤或指令。
算法需要满足正确性、可读性、健壮性和高效性等特性。
d) 算法的时间复杂度和空间复杂度是什么?时间复杂度是指在算法执行过程中所需的时间资源,空间复杂度是在算法执行过程中所需的存储空间资源。
2. 选择题a) 在排序算法中,如果待排序序列已经基本有序,以下哪个算法的性能最优?选项:A. 快速排序B. 冒泡排序C. 插入排序D. 归并排序正确答案:C. 插入排序b) 以下哪个数据结构通常用于实现递归算法?选项:A. 数组B. 链表C. 栈D. 队列正确答案:C. 栈3. 填空题a) 计算以下给定二叉树的前序遍历结果:A/ \B C/ \ / \D E F G正确答案:A, B, D, E, C, F, Gb) 给出选择排序算法的伪代码:```for i in range(len(arr)):min_index = ifor j in range(i+1, len(arr)):if arr[j] < arr[min_index]:min_index = jarr[i], arr[min_index] = arr[min_index], arr[i]```4. 案例题假设有一个包含100个元素的整数数组arr,对该数组进行排序后返回结果。
请使用任意一种排序算法,并给出算法的时间复杂度。
解答示例:我们可以使用快速排序算法来对数组进行排序,时间复杂度为O(nlogn)。
下面是该算法的Python代码实现:```def quick_sort(arr):if len(arr) <= 1:return arrpivot = arr[len(arr) // 2]left = [x for x in arr if x < pivot]middle = [x for x in arr if x == pivot]right = [x for x in arr if x > pivot]return quick_sort(left) + middle + quick_sort(right)arr = [5, 3, 2, 8, 1, 4, 7, 6, 9]sorted_arr = quick_sort(arr)print(sorted_arr)```运行结果:[1, 2, 3, 4, 5, 6, 7, 8, 9]5. 解答题请描述并给出示例说明动态规划算法的应用场景。
数据结构与算法考试
数据结构与算法考试(答案见尾页)一、选择题1. 什么是数据结构?请列举几种常见的数据结构。
A. 数组B. 链表C. 栈D. 队列E. 图2. 算法的时间复杂度是如何表示的?请简述其计算方式。
A. 用大O符号表示B. 用大O符号表示C. 用大O符号表示D. 用大O符号表示3. 什么是递归?请举例说明递归在算法中的实现。
A. 一个函数调用自身B. 一个函数调用自身的过程C. 一个函数调用自身的过程D. 一个函数调用自身的过程4. 什么是排序算法?请列举几种常见的排序算法,并简要描述它们的特点。
A. 冒泡排序B. 选择排序C. 插入排序D. 快速排序E. 归并排序5. 什么是哈希表?请简述哈希表的原理和优点。
A. 一种数据结构,它通过将键映射到数组索引来存储和检索数据B. 一种数据结构,它通过将键映射到数组索引来存储和检索数据C. 一种数据结构,它通过将键映射到数组索引来存储和检索数据D. 一种数据结构,它通过将键映射到数组索引来存储和检索数据6. 什么是树形结构?请列举几种常见的树形结构,并简要描述它们的特点。
A. 二叉树B. 二叉树C. B树D. B+树E. 无7. 什么是图数据结构?请列举几种常见的图算法,并简要描述它们的特点。
A. 广度优先搜索B. 深度优先搜索C. 最短路径算法(Dijkstra算法)D. 最长路径算法(Floyd算法)E. 最小生成树算法(Kruskal算法,Prim算法)8. 什么是动态规划?请简述动态规划的基本思想和应用场景。
A. 一种通过分解问题为更小的子问题来求解的方法B. 一种通过分解问题为更小的子问题来求解的方法C. 一种通过分解问题为更小的子问题来求解的方法D. 一种通过分解问题为更小的子问题来求解的方法9. 请简述贪心算法的基本思想以及在哪些问题上可以应用贪心算法。
A. 一种通过局部最优解来达到全局最优解的策略B. 一种通过局部最优解来达到全局最优解的策略C. 一种通过局部最优解来达到全局最优解的策略D. 一种通过局部最优解来达到全局最优解的策略10. 什么是算法的时间复杂度和空间复杂度?请简述它们的含义以及如何计算它们。
算法与数据结构试题及答案
算法与数据结构试题及答案一、算法试题1. 请解释什么是算法?算法是一系列确定的步骤,用于解决问题或执行特定任务的方法。
2. 请列举几种常见的算法分类。
- 搜索算法:如二分搜索、广度优先搜索、深度优先搜索。
- 排序算法:如冒泡排序、插入排序、快速排序。
- 图算法:如最短路径算法、最小生成树算法。
- 字符串匹配算法:如KMP算法、Boyer-Moore算法。
3. 请描述递归算法的特点及适用场景。
递归算法是指在解决问题时,将大问题划分成一个或多个与原问题类似但规模减小的子问题,并通过递归调用这些子问题来解决原问题。
递归算法的特点包括简洁,易于理解和实现,但可能存在性能上的问题。
适用场景包括树结构的问题、分治算法等。
4. 请解释时间复杂度和空间复杂度的概念。
- 时间复杂度是指算法执行所需要的时间,通常用大O符号表示。
表示算法运行时间与问题规模的增长率之间的关系。
- 空间复杂度是指算法在执行过程中所需的额外空间,通常也用大O符号表示。
表示算法所需的空间与问题规模的增长率之间的关系。
二、数据结构试题1. 请解释什么是数据结构?数据结构是指为组织和存储数据而设计的一种特定方式。
它定义了数据的逻辑关系和操作方法。
2. 请列举几种常见的数据结构。
- 数组:一种连续存储数据的线性数据结构。
- 栈:一种具有后进先出(LIFO)特性的线性数据结构。
- 队列:一种具有先进先出(FIFO)特性的线性数据结构。
- 链表:一种通过指针连接各个节点的数据结构。
- 树:一种由节点和边组成的非线性数据结构。
3. 请解释树的常见术语:节点、根节点、叶子节点、父节点、子节点、深度、高度。
- 节点:树中的基本元素,包含数据和指向其他节点的指针。
- 根节点:树的顶部节点,没有父节点。
- 叶子节点:没有子节点的节点。
- 父节点:有子节点的节点。
- 子节点:一个节点的直接后继节点。
- 深度:从根节点到当前节点所经过的边的数量。
- 高度:树中任意节点最大深度的值。
数据结构与算法设计期末考试复习题
数据结构与算法设计期末考试复习题1. 数据结构1.1 线性数据结构1. 什么是线性数据结构?请举例说明。
- 线性数据结构是一种数据元素之间存在一对一关系的数据结构,其中数据元素之间是有顺序的。
- 例子:数组、链表、栈、队列。
2. 数组和链表的区别是什么?- 数组是一段连续的存储空间,可以通过索引直接访问任意元素,但插入和删除元素的开销较大。
- 链表是由节点组成的链式存储结构,每个节点存储数据和指向下一个节点的指针,插入和删除元素的开销较小,但访问元素需要遍历链表。
1.2 非线性数据结构1. 什么是非线性数据结构?请举例说明。
- 非线性数据结构是一种数据元素之间存在一对多或多对多关系的数据结构,其中数据元素之间没有固定的顺序。
- 例子:树、图。
2. 二叉树和平衡二叉树有什么区别?- 二叉树是一种每个节点最多有两个子节点的树结构,没有任何平衡性要求。
- 平衡二叉树是一种二叉树,它的左子树和右子树的高度差不超过1,以保持树的平衡性。
2. 算法设计2.1 排序算法1. 冒泡排序是如何工作的?请给出示例。
- 冒泡排序通过不断比较相邻元素并交换位置,将最大(或最小)的元素逐渐“冒泡”到末尾。
- 示例:初始数组:[5, 3, 8, 2, 1]第一轮冒泡:[3, 5, 2, 1, 8]第二轮冒泡:[3, 2, 1, 5, 8]第三轮冒泡:[2, 1, 3, 5, 8]第四轮冒泡:[1, 2, 3, 5, 8]2. 快速排序是如何工作的?请给出示例。
- 快速排序通过选择一个基准元素,将数组分割为两个子数组,其中一个子数组的元素都小于基准元素,另一个子数组的元素都大于基准元素,然后递归地对子数组进行排序。
- 示例:初始数组:[5, 3, 8, 2, 1]选择基准元素:5子数组划分:[3, 2, 1] 5 [8]对左侧子数组递归排序:[1, 2, 3]对右侧子数组递归排序:[8]排序结果:[1, 2, 3, 5, 8]2.2 查找算法1. 二分查找是如何工作的?请给出示例。
数据结构与算法试题及
数据结构与算法试题及答案参考数据结构与算法试题及答案参考一、选择题1. 数据结构是研究什么的?A. 数据的结构和组织B. 数据的格式和排列C. 数据的读取和写入D. 数据的传输和存储正确答案:A2. 在数据结构中,栈(Stack)的特点是什么?A. 先进先出B. 先进后出C. 后进先出D. 后进后出正确答案:C3. 在链表中,结点的指针指向的是什么?A. 结点本身B. 结点的前一个结点C. 结点的后一个结点D. 结点的数据域正确答案:C4. 在二叉搜索树中,左子树的值都小于根节点,右子树的值都大于根节点。
这种特性被称为什么性质?A. 有序性B. 平衡性C. 完全性D. 二叉性正确答案:A二、填空题1. 算法的复杂度可以分为时间复杂度和________复杂度。
正确答案:空间2. 实现队列数据结构可以采用两个栈的方式,称为______队列。
正确答案:双栈3. 快速排序算法的时间复杂度为______。
正确答案:O(nlogn)三、编程题1. 请编写一个函数,实现对一个数组进行冒泡排序。
正确答案:```pythondef bubble_sort(arr):for i in range(len(arr) - 1):for j in range(len(arr) - 1 - i):if arr[j] > arr[j + 1]:arr[j], arr[j + 1] = arr[j + 1], arr[j]return arr```2. 请编写一个递归函数,计算斐波那契数列的第n项。
正确答案:```pythondef fibonacci(n):if n <= 1:return nelse:return fibonacci(n - 1) + fibonacci(n - 2)```四、简答题1. 请简单描述树和图的区别。
答:树是一种特殊的图,它是一个由节点和边组成的非线性数据结构,具有层级关系,且任意两个节点之间有且仅有一条路径相连。
数据结构与算法基础考试
数据结构与算法基础考试(答案见尾页)一、选择题1. 数据结构中,以下哪个是线性结构?A. 链表B. 栈C. 队列D. 二叉树2. 在算法分析中,以下哪个不是时间复杂度的组成部分?A. 时间复杂度B. 空间复杂度C. 时间步长D. 平均时间复杂度3. 以下哪个排序算法的时间复杂度为O(n^)?A. 快速排序B. 归并排序C. 堆排序D. 插入排序4. 在计算机中,以下哪种数据结构可以最有效地进行字符串匹配?A. 数组B. 链表C. 栈D. 哈希表5. 以下哪个图算法用于寻找最短路径?A. 拉普拉斯矩阵B. 关联矩阵C. 迪杰斯特拉算法D. A*搜索算法6. 以下哪个数据结构可以用来实现栈和队列?A. 数组B. 链表C. 栈D. 哈希表7. 在机器学习中,以下哪种算法属于监督学习?A. 决策树B. 聚类C. 逻辑回归D. 神经网络8. 以下哪个算法用于解决整数分解问题?A. RSA加密B. Diffie-Hellman密钥交换C. 数字签名D. ElGamal加密9. 在数据库管理中,以下哪个概念与数据的物理存储无关?A. 表空间B. 水平分割C. 垂直分割D. 存储过程10. 以下哪个编程语言不适合初学者学习数据结构和算法?A. PythonB. JavaC. C++D. JavaScript11. 什么是数据结构?请列举几种常见的数据结构,并简要描述它们的特点。
B. 链表C. 栈D. 队列E. 图12. 算法的时间复杂度是如何衡量的?请举例说明不同时间复杂度的算法。
A. O(1)B. O(log n)C. O(n)D. O(n^2)E. O(2^n)13. 什么是递归?请列举两种递归的例子,并解释它们如何工作。
A. 汉诺塔问题B. 二分查找C. 幂运算D. 斐波那契数列E. 求最大公约数14. 什么是栈?请列举栈的基本操作,并说明它们是如何实现的。
A. 后进先出(LIFO)B. 先进先出(FIFO)C. 帧栈D. 递归E. LIFO15. 什么是队列?请列举队列的基本操作,并说明它们是如何实现的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
算法与数据结构复习题一、单选题1.要求具有同一逻辑结构的数据元素具有相同的特性,其含义为(B)。
A.数据元素具有同一的特点B.不仅数据元素包含的数据项的个数相同,而且其对应数据项的类型要一致C.每个数据元素都一样D.仅需要数据元素包含的数据项的个数相同2.下列程序段for(i=1;i<=n;i++) A[I,j]=0;的时间复杂度是(D)。
A.O(1)B. O(0)C. O(1+n)D. O(n)3.在一个单链表中,已知*q 结点是 *p 结点的前驱结点,若在*q和*p之间插入结点*s,则执行操作(C)。
A.s->next=p->next;p->next=s;B.s->next=p;p->next=sC.q->next=s;s->next=p;D.p->next=s;s->next=q;4.在一个单链表中,若删除*p 结点的后继结点,则执行操作(A)。
A.q=p->next;p->next=q->next;free(q);B. p=p->next;p->next=p->next->next;free(p);C.p->next=q->next;free(p->next);D. p=p->next->next;free(p->next);5.设指针 p 指向双链表的某一结点,则双链表结构的对称性可以用下面的操作来反映(C)。
A.p->prior->next=p->next->next;B. p->prior->prior=p->next->prior;C.p->prior->next=p-> next->prior;D. p->next->next= p->prior->prior;6.表达式 a*(b+c)--d 的后缀表达式是 (B) 。
A. abcd*+- B. abc+*d-C. abc*+d- D. -+*abcd7.设一个栈的输入序列为A, B, C, D,则借助一个栈所得到的输出序列不可能是(D) 。
A.A,B, C,D B.D,C,B,A C.A, C, D, B D.D, A, B,C8.设一个栈的输入序列为12345,则借助一个栈所得到的输出序列不可能是(B) 。
A. 23415B. 54132 C.23145 D.154329.设有一个顺序栈, 6 个元素1、 2、 3、 4、5、 6依次入栈,如果 6 个元素出栈的顺序是 2、 3、 4、6、 5、 1,则栈的容量至少应该是(B) 。
A. 2B. 3 C.5 D.610.设有一个顺序栈的入栈序列是a、 b、 c,则 3 个元素都出栈的可能不同排列个数为(B) 。
A. 4B. 5 C.6 D.711.若已知一个栈的入栈序列是1,2, 3,, , n,其输出序列为pl , p2, p3,, , pn,若 pl是 n,则 pi是( C)。
A. i B. n-I C. n-i+1D.不确定12.已知广义表 LS=((a , b,c) , (d , e, f)) ,运算 head 和 tail函数取出元素 e 的运算是 (C) 。
A. head(tail(LS))B. tail(head(LS))C. head(tail(head(tail(LS))))D. head(tail(tail(head(LS))))13.二维数组 A 的每个元素是由 6 个字符组成的串,其行下标i=0 , l ,, , 8,列下标为 j=1 , 2., , 10。
设每个字符占一个字节, 若按行先存储,元素A[8 , 5] 的起始地址与 A 按列存储时起始地址相同的元素是(B) 。
A.A[8 ,5] B.A[3,10] C .A[5 ,8]D. A[0, 9]14.数组 A[1..5, 1..6] 的每个元素占 5 个单元,将其按行优先次序存储在起始地址为1000 的连续的内存单元中,则元素 A[5 , 5] 的地址为 (A)A.1140B.1145C.1120D.112515.对二叉树从 1 开始进行连续编号,要求每个结点的编号大于其左右孩子的编号,同一个结点的左右孩子中,其左孩子的编号小于其右孩子的编号,则可采用遍历方式是(C)。
A. 先序B. 中序C.后序D.从根开始的层次遍历16.某二叉树的先序序列和后序序列正好相反,则该二叉树的特点一定是(B)。
A. 空或只有一个结点B. 高度等于其结点数C.任一结点无左孩子D. 任一结点无右孩子117.下列说法正确的是(D) 。
(1)二又树按某种方式线索化后,任一节点均有指向前趋和后继的线索(2)二叉树的前序遍历序列中,任意一个节点均处于在子孙节点前(3)二叉排序树中任一节点的值大于其左孩子的值,小于右孩子的值A. (1)(2)(3)B. (1)(2)C. (1)(3)D.前面的可选答案都不对18.下面的说法中正确的是(B) 。
(1)任何一棵二叉树的叶子节点在三种遍历中的相对次序不变。
(2) 按二叉树定义,具有三个节点的二叉树共有 6 种。
A. (1) , (2) B . (1)C. (2)D. (1) , (2) 都错19.树有先根遍历和后根遍历,树可以转化为对应的二叉树。
下面的说法正确的是(B) 。
A.树的后根遍历与其对应的二叉树的后根遍历相同B.树的后根遍历与其对应的二叉树的中根遍历相同C.树的先根遍历与其对应的二叉树的中根遍历相同D.以上都不对20.下图的邻接表中,从顶点V1 出发采用深度优先搜索法遍历该图,则可能的顶点序列是(D)。
A.V1V2V3V4V5B.V1V2V3V5V4C.V1V4V3V5V2D.V1V3V4V5V221.以下说法不正确的是(D) 。
A.无向图中的极大连通子图称为连通分量B.连通图的广度优先搜索中一般要采用队列来暂存刚访问过的顶点C.图的深度优先搜索中一般要采用栈来暂存刚访问过的顶点D.有向图的遍历不可采用广度优先搜索22.在平衡二叉树中插入一个结点后引起了不平衡,设最低( 最接近于叶子) 的不平衡点是A,并已知 A 的左、右孩子的平衡因子分别为-1 和 0,则应进行的平衡旋转是(B) 。
A.LL 型 B.LR型 C.RL 型 D.RR型23.设哈希表长为14,哈希函数H(key)=key % 11,表中已有数据的关键字为15, 38, 61, 84,四个,现将关键字为 49 的结点加到表中,用二次探测再散列法解决冲突,则放入的位置是(A) 。
A.8B.3C.5D.924.对散列文件,以下说法错误的是(D) 。
A.散列文件插入、删除方便,不需要索引区且节省存储空间B.散列文件只能按关键字随机存取且存取速度快C.经过多次插入、删除后,可能出现溢出桶满的情况D.散列文件顺序存取方便26.对有 18 个元素的有序表作二分查找,则查找A[3] 的比较序列的下标为(D)。
A.1,2,3B.9 ,5,2, 3C. 9,5, 3 D.9,4,2, 327.在平衡二叉树中插入一个结点后造成了不平衡,设最低的不平衡结点为A,并已知 A 的左孩子的平衡因子为0,右孩子的平衡因子为1,则应调整以使其平衡,所作的平衡旋转是(C)。
A.LL 型B.LR 型C.RL 型D.RR型28.在 n 个结点且为完全二叉树的二叉排序树中查找一个键值,其平均比较次数的数量级为(B)。
A.O(n)B.O(log 2n)C.O(nlog 2n)D.O(n 2)229.下列排序算法中,在待排序数据已基本有序时,效率最高的排序方法是(A) 。
A.插入B.选择C.快速D.堆30.下面关于B-树和 B+树的叙述中,不正确的结论是(A) 。
A. B-树和 B+树都能有效地支持顺序查找B. B-树和 B+树都能有效地支持随机查找C. B-树和 B+树都是平衡的多叉树D. B-树和 B+树都可用于文件索引结构31.关键路径是事件结点网络中(B) 。
A.从源点到汇点的最长路径B.从源点到汇点的最短路径C.最长的回路D.最短的回路32.将两个各有 n 个元素的有序表归并成一个有序表,其最少的比较次数是(A) 。
A. n B. 2n-1 C . 2n D. n-133.下列排序算法中,时间复杂度不受数据初始状态影响,恒为0(nlog2n)的是(A)。
A. 堆排序B. 冒泡排序C.直接选择排序D.快速排序34.下列排序算法中,某一趟结束后未必能选出一个元素放在其最终位置上的是(D)A. 堆排序B. 冒泡排序C.快速排序D. 直接插入排序35.数据表 A 中有 10000 个元素,如果仅要求求出其中最大的10 个元素,则采用最节省时间的排序算法是(A)。
A. 堆排序B. 希尔排序C.快速排序D. 直接选择排序36.数据结构被形式地定义为(D,R),其中 D 是()。
A. 算法B. 操作的集合C.数据元素的集合D. 数据关系的集合37.顺序表是线性表的(A)。
A. 顺序存储结构B.链式存储结构C.索引存储结构D. 散列存储结构38.在一个单链表中,已知*p 结点不是最后结点,若在 *p 之后插入结点 *s ,则执行操作( B)。
A.s->next=p;p->next=s;B.s->next=p->next;p->next=sC.s->next=p->next;p=s;D.p->next=s;s->next= p ;39.循环队列 A[O..m-1]存放其元素值,用front和 rear 分别表示队头及队尾,则循环队列满的条件是(A) 。
A. (Q.rear+1) % m==Q.front B. Q.rear==Q.front+1C. Q.rear+l=Q.front D. Q.real==Q.front40.如果以链栈为存储结构,则出栈操作时( B )。
A.必须判栈满B.必须判别栈空 C. 判别栈中元素类型 D. 不必作任何判别41.对矩阵压缩存储是为了(B) 。
A. 方便运算B. 节省空间C.方便存储D. 提高运算速度42.将一棵有 100 个结点的完全二叉树从根这一层开始,每一层上从左到右依次对结点进行编号,根结点的编号为1,则编号为 49 的结点的左孩子编号为(B)。
A.98B.99C.50D.4843.二义树在线索化后,仍不能有效求解的问题是(D)。
A. 先序线索二叉树中求先序后继B. 中序线索二叉树中求中序后继C. 中序线索二叉树中求中序前趋D.后序线索二又树中求后序后继44.对于关键字序列 (12 ,13,11, 18,60,15,7,18, 25,100) ,用筛选法建堆,则开始结点的键值必须为(C)。