《算法与数据结构》考试试卷

合集下载

算法与数据结构试题与答案

算法与数据结构试题与答案

算法与数据结构试题与答案简介算法与数据结构是计算机科学中最重要的基础课程之一。

本文档将提供一系列常见的算法与数据结构试题,并附上答案进行解析。

这些试题适用于计算机科学、软件工程、数据科学等专业的学生,也适用于在求职面试中涉及到算法与数据结构的岗位。

算法1. 寻找最小值请编写一个函数,接收一个整数数组作为参数,返回数组中的最小值。

解答function findMin(arr) {let min = arr[0];for (let i = 1; i < arr.length; i++) {if (arr[i] < min) {min = arr[i];}}return min;}// 测试样例let arr = [8, 6, 7, 5, 3, 0, 9];console.log(findMin(arr)); // 02. 冒泡排序请编写一个函数,接收一个整数数组作为参数,实现冒泡排序算法,并返回排序后的数组。

冒泡排序的基本思想是从头到尾比较相邻两个元素的大小,并交换它们的位置,直到整个数组有序为止。

解答function bubbleSort(arr) {for (let i = 0; i < arr.length - 1; i++) {for (let j = 0; j < arr.length - i - 1; j++) {if (arr[j] > arr[j + 1]) {let temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}return arr;}// 测试样例let arr = [8, 6, 7, 5, 3, 0, 9];console.log(bubbleSort(arr)); // [0, 3, 5, 6, 7, 8, 9]3. 快速排序请编写一个函数,接收一个整数数组作为参数,实现快速排序算法,并返回排序后的数组。

算法与数据结构期末考试试卷[

算法与数据结构期末考试试卷[

课程测试试题(A卷)一、一、单选题(每题 2 分,共20分)1.1.对一个算法的评价,不包括如下()方面的内容。

A.健壮性和可读性B.并行性C.正确性D.时空复杂度2.2.在带有头结点的单链表HL中,要向表头插入一个由指针p指向的结点,则执行( )。

A. p->next=HL->next; HL->next=p;B. p->next=HL; HL=p;C. p->next=HL; p=HL;D. HL=p; p->next=HL;3.3.对线性表,在下列哪种情况下应当采用链表表示?( )A.经常需要随机地存取元素B.经常需要进行插入和删除操作C.表中元素需要占据一片连续的存储空间D.表中元素的个数不变4.4.一个栈的输入序列为1 2 3,则下列序列中不可能是栈的输出序列的是( )A. 2 3 1B. 3 2 1C. 3 1 2D. 1 2 35.5.AOV网是一种()。

A.有向图B.无向图C.无向无环图D.有向无环图6.6.采用开放定址法处理散列表的冲突时,其平均查找长度()。

A.低于链接法处理冲突 B. 高于链接法处理冲突C.与链接法处理冲突相同D.高于二分查找7.7.若需要利用形参直接访问实参时,应将形参变量说明为()参数。

A.值B.函数C.指针D.引用8.8.在稀疏矩阵的带行指针向量的链接存储中,每个单链表中的结点都具有相同的()。

A.行号B.列号C.元素值D.非零元素个数9.9.快速排序在最坏情况下的时间复杂度为()。

A.O(log2n) B.O(nlog2n) C.0(n) D.0(n2)10.10.从二叉搜索树中查找一个元素时,其时间复杂度大致为( )。

A. O(n)B. O(1)C. O(log2n)D. O(n2)二、二、运算题(每题 6 分,共24分)1.1.数据结构是指数据及其相互之间的______________。

当结点之间存在M对N(M:N)的联系时,称这种结构为_____________________。

《算法与数据结构》-期中试卷

《算法与数据结构》-期中试卷

《算法与数据结构》课程期中试卷一、判断题(本大题共10小题。

每小题1分,共10分。

) (注意:将判断结果填入以下表格中。

对的打√,错的打×。

)1. 算法分析的目的是研究算法中输入和输出的关系。

( 错 )2. 可以随机访问任一元素是链表具有的特点。

( 错)3. 用一维数组存储一棵完全二叉树是有效的存储方法。

(对 )4. 在队列第i 个元素之后插入一个元素不是队列的基本运算。

( 错 )5. Tail (Tail (Head (((a,b),(c,d)))))= (b)。

( )6. 如果一个叶子是某二叉树的中序遍历的最后一个结点,则它必是该二叉树的前序遍历下的最后一个结点。

( 错)比如只有根节点和左子树的特殊情况。

7. 由权值分别为3, 8, 6, 2的叶子生成一棵哈夫曼树,它的带权路径长度为35。

(对 ) 带权路径长度=1*8+2*6+3*3+3*2=35(书P146)8. Head (Tail (Head (((a,b),(c,d)))))= (b)。

( )9. 数据结构包括数据间的逻辑结构、数据的存储方式和数据的运算三个方面。

(对 )逻辑结构、存储结构和数据的操作(运算)三个方面10. 线性的数据结构可以顺序存储,也可以链接存储;非线性的数据结构只能链接存储。

(错 ) 比如完全二叉树。

二、单项选择题(本大题共15小题。

每小题2分,共30分。

)(注意:以下各题只有一个正确答案,请将选择的结果填入以下表格中。

) 1. 下面程序段的时间复杂度为________。

s=0;for (i=1;i<n ;i++) for (j=1;j<i ;j++) s += i*j ;A. O(1)B. O(logn)C. O(n)D. O(n 2)[D] 就是s= s +i*j ;运算次数 ,T=(1+2+3…………n)=n(n+1)/2,为n^22. 以下数据结构中哪一个是线性结构_ ___。

A. 有向图B. 线索二叉树C. 队列D. 二叉排序树[C]堆栈,线性表(循序表,链表),队列都是线性结构。

数据结构与算法 试题及答案

数据结构与算法 试题及答案

数据结构与算法试题及答案数据结构与算法试题及答案在计算机科学领域,数据结构与算法是非常重要的基础知识。

数据结构是一种组织和存储数据的方式,而算法则是解决问题的方法和步骤。

掌握好数据结构与算法,有助于提高程序的运行效率和解决实际问题。

下面是一些关于数据结构与算法的试题及其答案,希望能够帮助大家更好地理解和应用这方面的知识。

试题一:什么是数据结构?请举例说明。

答案一:数据结构是一种组织和存储数据的方式。

它可以使数据的操作更加高效。

常见的数据结构有数组、链表、栈、队列、树和图等。

举个例子,数组是一种线性数据结构,可以存储一组相同类型的元素。

试题二:什么是算法?请举例说明。

答案二:算法是一种解决问题的方法和步骤。

它是一个精确的描述,用于解决特定问题。

常见的算法有排序算法、查找算法、递归算法等。

例如,冒泡排序算法是一种比较简单的排序算法,通过不断交换相邻元素的位置来达到排序的目的。

试题三:什么是时间复杂度和空间复杂度?答案三:时间复杂度和空间复杂度是衡量算法性能的两个指标。

时间复杂度是指算法执行所需要的时间,通常用大O符号表示。

空间复杂度是指算法执行所需要的额外空间,通常也用大O符号表示。

它们都是描述算法随着输入规模增大而变化的趋势。

试题四:介绍一下常见的数据结构和相应的操作。

答案四:常见的数据结构有数组、链表、栈、队列、树和图等。

- 数组是一种线性数据结构,可以随机访问元素,并且在插入和删除元素时需要移动其他元素。

- 链表是一种动态数据结构,不需要固定的内存空间,但只能通过指针进行元素的访问。

- 栈是一种后进先出(LIFO)的数据结构,只能在栈顶进行插入和删除元素的操作。

- 队列是一种先进先出(FIFO)的数据结构,只能在队尾插入元素,在队头删除元素。

- 树是一种非线性数据结构,由节点和指向子节点的边组成。

常见的树有二叉树、二叉搜索树和AVL树等。

- 图是一种复杂的数据结构,由节点和边组成,可以表示各种关系。

(完整版)数据结构与算法试题

(完整版)数据结构与算法试题

一、选择题1. 在逻辑上能够把数据结构分红(A)A. 线性结构和非线性结构B. 动向结构和静态结构C.紧凑结构和非紧凑结构D.内部结构和外面结构2. 单链表中各结点之间的地点(C)A. 一定连续B.部分一定连续C.不必定连续D.以上均不对3. 在一个长度为 n 的次序表中向第 i 个元素( 0<i<=n+1 )以前插入一个新元素时,需向后挪动(B )个元素。

A 、n-iB、n-i+1C、n-i-1D、 i4. 插入和删除操作只好在一端进行的线性表,称为(C )。

A. 行列B. 线性表C. 栈D.循环行列5、行列是仅同意在()进行插入,而在()进行删除。

(A )A. 队尾,队首B. 队尾,队尾C. 队首,队尾D. 队首,队首6. 链表合适于(A )查找。

A. 次序B.二分C.随机D.次序或二分7. 数据的基本单位是(A )。

A. 数据元素B.数据结构C.数据项D.数据对象8. 以下哪个不是算法的特征(B )。

A. 有穷性B. 可数性C.可行性D.确立性9. 在表长为 n 的次序表中进行线性查找,它的均匀查找长度为(B )。

A.ASL=nB.ASL=(n+1)/2C.ASL=n+1 D.ASL=log2n10. 一个线性表第一个元素的储存地点是 320,每个元素的长度为 3,则第五个元素的地点是(C )。

11. 设 front 、rear 分别为循环双向链表结点的左指针和右指针,则指针 P 所指的元素是双循环链表 L 的尾元素的条件是(D )。

A.P==LB.P->front==LC.P==NULLD.P->rear==L12. 已知 P 为单链表中的非首尾结点,删除 P 结点的后继结点 Q 的语句为(A )。

A.P->NEXT=Q->NEXT;FREE(Q);B.Q->NEXT=P; FREE(Q);C.Q->NEXT=P->NEXT;FREE(Q);D.P->NEXT=S;S->NEXT=P; B第1页共16页 1A.SQ->rear==SQ->frontB. (SQ->rear+1)%MAXLEN==SQ->frontC.SQ->rear==0D. SQ->front==014. 一组记录的排序码为( 46, 79,56, 38, 40, 84),则利用堆排序的方法成立的初始堆 为(B )。

《算法与数据结构》考试试卷

《算法与数据结构》考试试卷

⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯东莞理工学院(本科)试卷(A 卷)⋯ ⋯ ⋯ 2009-2010学年第二学期⋯ ⋯⋯《算一、填空题题2分,共18分)⋯ 线 : 业 专 级 年⋯ ⋯ ⋯ ⋯ ⋯ ⋯1、对于给定的n 个元素,可以构造出的逻辑结构有集合,, 和四种。

2、数据结构中评价算法的两个重要指标是和。

3、在顺序存储结构中,逻辑上相邻的数据元素,其物理位置,在单⋯ ⋯ ⋯链表中,逻辑上相邻的数据元素,其物理位置。

⋯ ⋯4、栈是操作受限的线性表,其操作数据的基本原则是,允许进行插 : 别 ) 系题 ⋯ ⋯ ⋯⋯封⋯入和删除操作的一端称为。

5、设有一个二维数组A [10][10],若每个元素占6个基本存储单元,A[0][0]的地址是 1000,若按行优先(以行为主)顺序存储,则元素A[6][8]的存储地址是;答⋯若按列优先(以列为主)顺序存储,则元素A[6][8]的存储地址是。

⋯ 不6n 、设有一棵深度为的完全二叉树,该二叉树至少有个结点,至多有 ⋯ 内⋯线个结点。

⋯封 密 ( ⋯ ⋯ ⋯⋯7、若采用邻接矩阵存储一个图所需要的存储单元取决于图的;无向图的邻接矩阵一定是。

: 号 学⋯ ⋯ ⋯⋯ 8、在进行排序时,最基本的操作是和。

9、在查找时,若采用折半查找,要求线性表,而哈希表的查找,要求 ⋯ ⋯ 线性表。

⋯ ⋯二、单项选择题(请将答案写在题目后的括号中。

每题2分,共18分) 密 ⋯1、设有长度为n 的数组a ,假设已经赋值,下面程序段的时间复杂度是()。

: 名 姓⋯ ⋯⋯⋯for(i=0;i<n-1;i++) {k=i;⋯⋯⋯⋯⋯⋯for(j=i+1;j<n;j++)if(a[k]>a[j])k=j;if(k!=i){temp=a[i];a[i]=a[k];a[k]=temp;}⋯⋯⋯⋯⋯共8页,第1页}2)(C)O(㏒2n)(D)O(n㏒2n)(A)O(n)(B)O(n2、设有以head为头结点的非空单循环链表,链表中只有一个结点条件是()。

算法与数据结构课程模拟考试试卷

《算法与数据结构》课程模拟考试试卷一、单项选择题(共10小题,每小题2分,共20分)1.在下面的程序段中,对x的赋值语句的频度为()。

i=1;k=0;while(i<n){k=k+10;i++;}A.0(1) B.O(n) C.0(log2n) D.0(nlog2n) 2.线性表采用链式存储时,其地址()。

A.必须是连续的 B.部分地址必须是连续的C.一定是不连续的 D.连续与否均可以3.一个栈的输入序列为1,2,……,n,输出序列的第一个元素是n,则第二个输出元素是()。

A.不确定 B.n-1 C.n-i+1 D.24.对于只在表的首、尾两端进行插入操作的线性表,宜采用的存储结构为( )A.顺序表B.用头指针表示的单循环链表C.用尾指针表示的单循环链表D.单链表5.深度为5的二叉树其结点个数至多有()。

A.16 B.32 C.31 D.106.有6个结点的无向图要确保是一个连通图至少应有()。

A.5条边 B.6条边 C.7条边 D.8条边7.下列说法中正确的是()。

A.有向图的邻接矩阵一定是非对称矩阵B. 无向图的邻接矩阵一定是对称矩阵C.若图G的邻接矩阵是对称的,则G一定是无向图D.有向图的邻接矩阵一定是下三角矩阵8.下列排序算法中,第一趟排序完毕后,其最大或最小元素一定在最终位置上的算法是()。

A.归并排序 B.直接插入排序C.快速排序 D.冒泡排序9.二分查找法要求被查找的表是()。

A.顺序表 B.分块有序表C.顺序表且是按递增或递减次序排序 D.不受上述任何限制10.下列有关散列文件的说法中不正确的是()。

A.散列文件具有随机存放的优点B.散列文件只能按关键字存取C.散列文件需要索引区D.散列文件的记录不需要进行排序二、简述题(共4小题,每小题5分,共20分)1.线性表与有限集合有什么区别?2.如何判断顺序循环队列的空与满?3.说明满二叉树与完全二叉树的区别。

4.基于“关键字比较”排序算法最好平均时间复杂度是多少?分别是那些排序算法?三、应用题(共6小题,每小题6分,共36分)1.请画出与下面二叉树对应的森林。

算法与数据结构常见考题笔试题

二、填空题:1、《数据结构》课程讨论的主要内容是数据的逻辑结构、存储结构和___运算___________。

2、数据结构算法中,通常用时间复杂度和____空间复杂度______________两种方法衡量其效率。

3、一个算法一该具有__有穷性____,__确定性____,__可行性__,___输入___和_输出___这五种特性。

4、若频繁地对线性表进行插入与删除操作,该线性表应采用_链式___________存储结构。

5、在非空线性表中除第一个元素外,集合中每个数据元素只有一个_直接前驱______;除最后一个元素之外,集合中每个数据元素均只有一个___直接_后继_____。

6、线性表中的每个结点最多有__一个_直接___前驱和______一个直接___后继。

7、____循环__链表从任何一个结点出发,都能访问到所有结点。

8、链式存储结构中的结点包含__指针__________域,________数据_______域。

9、在双向链表中,每个结点含有两个指针域,一个指向___前驱__结点,另一个指向__后继______结点。

10、某带头结点的单链表的头指针head,判定该单链表非空的条件__head->next!=NULL____________。

11、在双向链表中,每个结点含有两个指针域,一个指向前驱结点,另一个指向后续结点。

12、已知指针p指向单链表中某个结点,则语句p->next=p->next->next的作用__删除p 的后继结点_。

13、已知在结点个数大于1的单链表中,指针p指向某个结点,则下列程序段结束时,指针q指向*p的____后继_________结点。

q=p;while(q->next!=p)q=q->next;14、若要在单链表结点*P后插入一结点*S,执行的语句_p->next=s->next;p->next=s_____。

算法与数据结构试题及答案

算法与数据结构试题及答案数据结构模拟试题...一、简答题(15分,每小题3分)1.简要说明算法与程序的区别。

2.在哈希表中,发生冲突的可能性与哪些因素有关?为什么?3.说明在图的遍历中,设置访问标志数组的作用。

4.说明以下三个概念的关系:头指针,头结点,首元素结点。

5.在一般的顺序队列中,什么是假溢出?怎样解决假溢出问题?二、判断题(10分,每小题1分)正确在括号内打√,错误打×( )(1)广义表((( a ), b), c ) 的表头是(( a ), b),表尾是( c )。

( )(2)在哈夫曼树中,权值最小的结点离根结点最近。

( )(3)基数排序是高位优先排序法。

( )(4)在平衡二叉树中,任意结点左右子树的高度差(绝对值)不超过1。

( )(5)在单链表中,给定任一结点的地址p,则可用下述语句将新结点s插入结点p的后面:p->next = s; s->next = p->next;( )(6)抽象数据类型(ADT)包括定义和实现两方面,其中定义是独立于实现的,定义仅给出一个ADT的逻辑特性,不必考虑如何在计算机中实现。

( )(7)数组元素的下标值越大,存取时间越长。

( )(8)用邻接矩阵法存储一个图时,在不考虑压缩存储的情况下,所占用的存储空间大小只与图中结点个数有关,而与图的边数无关。

( )(9)拓扑排序是按AOE网中每个结点事件的最早发生时间对结点进行排序。

( )(10)长度为1的串等价于一个字符型常量。

三、单项选择题(10分, 每小题1分)1.排序时扫描待排序记录序列,顺次比较相邻的两个元素的大小,逆序时就交换位置。

这是哪种排序方法的基本思想?A、堆排序B、直接插入排序C、快速排序D、冒泡排序2.已知一个有向图的邻接矩阵表示,要删除所有从第i个结点发出的边,应该:A)将邻接矩阵的第i行删除B)将邻接矩阵的第i行元素全部置为0C)将邻接矩阵的第i列删除D)将邻接矩阵的第i列元素全部置为03.有一个含头结点的双向循环链表,头指针为head, 则其为空的条件是:A.head->priro==NULLB. head->next==NULLC. head->next==headD. head->next-> priro==NULL4. 在顺序表( 3, 6, 8, 10, 12, 15, 16, 18, 21, 25, 30 ) 中,用折半法查找关键码值11,所需的关键码比较次数为:A) 2 B) 3 C) 4 D) 55. 以下哪一个不是队列的基本运算?A)从队尾插入一个新元素B)从队列中删除第i个元素C)判断一个队列是否为空D)读取队头元素的值6. 在长度为n的顺序表的第i个位置上插入一个元素(1≤i ≤n+1),元素的移动次数为:A) n –i + 1 B) n –i C) i D) i –17.对于只在表的首、尾两端进行插入操作的线性表,宜采用的存储结构为:A) 顺序表B) 用头指针表示的循环单链表C) 用尾指针表示的循环单链表D) 单链表8.对包含n个元素的哈希表进行查找,平均查找长度为:A) O(log2n) B) O(n) C) O(nlog2n) D) 不直接依赖于n9.将一棵有100个结点的完全二叉树从根这一层开始,每一层从左到右依次对结点进行编号,根结点编号为1,则编号最大的非叶结点的编号为:A、48B、49C、50D、5110.某二叉树结点的中序序列为A、B、C、D、E、F、G,后序序列为B、D、C、A、F、G、E,则其左子树中结点数目为:A)3 B)2 C)4 D)5四、填空题(10分,每空1分)1.填空完成下面一趟快速排序算法:int QKPass ( RecordT ype r [ ], int low,int high){ x = r [ low ];while ( low < high ){while ( low < high && r [ ]. key >= x.key )high - -;if ( low < high ){ r [ ] = r [ high ];low++; }while ( low < high && r [ ]. key < x. key )low++;if ( low < high ){ r [ ] = r [ low ];high--; }}r [ low ] = x;return low ;}2. 假设用循环单链表实现队列,若队列非空,且队尾指针为R, 则将新结点S加入队列时,需执行下面语句:;;R=S;3.通常是以算法执行所耗费的和所占用的来判断一个算法的优劣。

算法与数据结构试题及答案

算法与数据结构试题及答案一、算法试题1. 请解释什么是算法?算法是一系列确定的步骤,用于解决问题或执行特定任务的方法。

2. 请列举几种常见的算法分类。

- 搜索算法:如二分搜索、广度优先搜索、深度优先搜索。

- 排序算法:如冒泡排序、插入排序、快速排序。

- 图算法:如最短路径算法、最小生成树算法。

- 字符串匹配算法:如KMP算法、Boyer-Moore算法。

3. 请描述递归算法的特点及适用场景。

递归算法是指在解决问题时,将大问题划分成一个或多个与原问题类似但规模减小的子问题,并通过递归调用这些子问题来解决原问题。

递归算法的特点包括简洁,易于理解和实现,但可能存在性能上的问题。

适用场景包括树结构的问题、分治算法等。

4. 请解释时间复杂度和空间复杂度的概念。

- 时间复杂度是指算法执行所需要的时间,通常用大O符号表示。

表示算法运行时间与问题规模的增长率之间的关系。

- 空间复杂度是指算法在执行过程中所需的额外空间,通常也用大O符号表示。

表示算法所需的空间与问题规模的增长率之间的关系。

二、数据结构试题1. 请解释什么是数据结构?数据结构是指为组织和存储数据而设计的一种特定方式。

它定义了数据的逻辑关系和操作方法。

2. 请列举几种常见的数据结构。

- 数组:一种连续存储数据的线性数据结构。

- 栈:一种具有后进先出(LIFO)特性的线性数据结构。

- 队列:一种具有先进先出(FIFO)特性的线性数据结构。

- 链表:一种通过指针连接各个节点的数据结构。

- 树:一种由节点和边组成的非线性数据结构。

3. 请解释树的常见术语:节点、根节点、叶子节点、父节点、子节点、深度、高度。

- 节点:树中的基本元素,包含数据和指向其他节点的指针。

- 根节点:树的顶部节点,没有父节点。

- 叶子节点:没有子节点的节点。

- 父节点:有子节点的节点。

- 子节点:一个节点的直接后继节点。

- 深度:从根节点到当前节点所经过的边的数量。

- 高度:树中任意节点最大深度的值。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

东莞理工学院(本科)试卷(A 卷)2009 -2010 学年第二学期

《算法与数据结构》试卷(A 卷) 一、填空题(每小题2分,共18分) 1、 对于给定的n个元素,可以构造出的逻辑结构有集合, , 和 四种。 2、 数据结构中评价算法的两个重要指标是 和 。 3、 在顺序存储结构中,逻辑上相邻的数据元素,其物理位置 ,在单链表中,逻辑上相邻的数据元素,其物理位置 。 4、 栈是操作受限的线性表,其操作数据的基本原则是 ,允许进行插入和删除操作的一端称为 。 5、 设有一个二维数组A[10][10],若每个元素占6个基本存储单元,A[0][0]的地址是1000,若按行优先(以行为主)顺序存储,则元素A[6][8]的存储地址是 ;若按列优先(以列为主)顺序存储,则元素A[6][8]的存储地址是 。 6、 设有一棵深度为n的完全二叉树,该二叉树至少有 个结点,至多有 个结点。 7、 若采用邻接矩阵存储一个图所需要的存储单元取决于图的 ;无向图的邻接矩阵一定是 。 8、 在进行排序时,最基本的操作是 和 。 9、 在查找时,若采用折半查找,要求线性表 ,而哈希表的查找,要求线性表 。 二、单项选择题(请将答案写在题目后的括号中。每题2分,共18分) 1、设有长度为n的数组a,假设已经赋值,下面程序段的时间复杂度是( )。 for (i=0; i{ k=i ; for (j=i+1; jif (a[k]>a[j]) k=j ; if (k!=i) { temp=a[i]; a[i]=a[k] ; a[k]=temp ; }

姓名:

学号: 系别: 年级专业: ( 密 封 线 内 不 答 题 )

…………………………………………密………………………………………………封

………………………………………线…………………………………… } (A) O(n) (B) O(n2) (C) O(㏒2n) (D) O(n㏒2n) 2、 设有以head为头结点的非空单循环链表,链表中只有一个结点条件是( )。 (A) head->next=head ; (B) head->next=head->next ; (C) head->next->next=head ; (D) head->next->next=head->next; 3、设有一个大小为Max的循环队列Q,判断该队列为满的条件是( )。 (A) Q.rear-Q.front==Max (B) Q.rear-Q.front-1==Max (C) Q.rear==Q.front (D) (Q.rear+1)%Max==Q.front 4、二叉树是非线性结构,因此( ) (A) 不能用顺序存储结构存储 (B) 不能用链式存储结构存储 (C) 既能用链式存储结构存储,也能用顺序存储结构存储 (D) 既不能用链式存储结构存储,也不能用顺序存储结构存储 5、设有一棵二叉树,其先序遍历序列是acdgehibfkj,中序遍历序列是dgcheiabkfj,则该二叉树的后序遍历序列是( )。 (A) gdehickjfba (B) gdhiecfkjba (C) dghieckjfba (D) gdhieckjfba 6、 在一个有向图中,所有顶点的出度之和等于所有顶点的入度之和的 倍, 所有顶点的度之和等于所有顶点的出度之和的 倍。( ) (A) 1/2,1 (B) 1,2 (C) 2,1 (D) 1,4 7、对于有n个顶点e(e>n)条边的带权无向图,以下关于该图的最小生成树的描述正确的是( )。 (A) 最小生成树是唯一的。 (B) 最小生成树中所有边上的权值之和是唯一的。 (C) 最小生成树有n条边。 (D) 最小生成树有n个顶点e-1条边。 8、 设有关键集合{21,12,46,40,32,29,65,53},采用冒泡排序法进行一趟排序操作后的结果是( )。 (A)12,21,46,40,32,29,53,65 (B) 12,21,40,46,32,29,53,65 (C)12,21,40,32,46,29,53,65 (D) 12,21,40,32,29,46,53,65 年

专业:

……………………………

线……………………………………9、设有一组记录的关键字为{19, 41, 23, 38, 28, 54, 84, 27},用链地址法构造哈希表,哈希函数为H(key)=key MOD 13,哈希地址为2的链表中有 个记录。( ) (A) 3 (B) 4 (C) 2 (D) 1 三、分析题(每题6分,共30分) 1、 设有一棵树,采用双亲表示法的存储结构如右图,请解决以下问题: ① 画出该树的逻辑结构 (2分) ② 给出对该树进行先序遍历的遍历序列 (1分) ③ 画出将该树转换的二叉树 (2分) ④ 给出对转换后的二叉树的后序遍历序列 (1分)

2、 对于下图中的带权无向图,请解决以下问题: ① 画出该图的邻接链表; (2分) ② 根据您画出的邻接链表写出其广度优先搜索生成树(假设从顶点3出发); (2分) ③ 给出按Kruskal算法得到的最小生成树。 (2分)

3、 将关键字序列(18,22,13,37,4,9,25,15,20)插入到初态为空的二叉排序树中,请画出建立二叉排序树T;然后画出删除13之后的二叉排序树T1;再画出插入13之后的二叉排序树T2。

1 5 2

4 3

5 7 10

3 3 4

9

8

0 1 2 3 4 5 6 7 8 9 10 11

A -1 B 0 C 0 D 0 E 1 F 1 G 2 H 2 I 2 J 3 K 4 M 4 4、 线性表的关键字集合{51,25,18,39,42,69,35,33,17,56,47,13,8},共有13个元素,已知散列函数为:H(k) = k MOD 11,采用链地址处理冲突,请给出对应的散列表结构。

5、 已知关键字集合{15,29,33,40,17,39,18,21,12,45,52,43,9},请给出采用增量序列为5, 3, 1的希尔排序法,对该序列做非递减排序时的每一趟结果。

四、算法填空(每空2分,共20分) 请在下面各算法的空白处填上相应语句以实现算法功能。每个空白只能填一个语句。 1、设有链队列,其数据结构定义如下。然后进行出队操作,将出队的队首元素的数据通过指针变量x带回。 typedef struct Qnode { ElemType data ; struct Qnode *next ; }QNode ; typedef struct link_queue { QNode *front , *rear ; }Link_Queue ; int Delete_LinkQueue(LinkQueue *Q, ElemType *x) { QNode *p ; if (Q->front==Q->rear) return 0 ; /* 队空 */ p=Q->front->next ; /* 取队首结点 */ ; Q->front->next=p->next ; if (p==Q->rear) ; free(p) ; return 1 ; }

姓名:

学号: 系别: 年级专业: ( 密 封 线 内 不 答 题 )

…………………………………………密………………………………………………封

………………………………………线……………………………………

相关文档
最新文档