西安电子科技大学数据结构期末复习题

西安电子科技大学

《数据结构》复习题

(含部分参考答案版)

一、单项选择题

1. 按照数据逻辑结构的不同,可以将数据结构分成 C 。

A. 动态结构和静态结构

B. 紧凑结构和非紧凑结构

C. 线性结构和非线性结构

D. 内部结构和外部结构

2. 下列关于数据结构的叙述中正确的是 A 。

A. 数组是同类型值的集合

B. 递归算法的程序结构比迭代算法的程序结构更为复杂

C. 树是一种线性的数据结构

D. 用一维数组存储二叉树,总是以先序顺序遍历各结点

3. 在计算机的存储器中表示时,物理地址与逻辑地址相同并且是连续的,称之为B

A.逻辑结构

B.顺序存储结构

C.链式存储结构

D.以上都不对

4. 以下关于算法特性的描述中, B 是正确的。

(1)算法至少有一个输入和一个输出

(2)算法至少有一个输出但是可以没有输入

(3)算法可以永远运行下去

A. (1)

B. (2)

C. (3)

D. (2)和(3)

5. 对顺序存储的线性表(a1,a2,…,a n)进行插入操作的时间复杂度是 C 。

A.O(n)

B. O(n-i)

C. (n/2)

D. O(n-1)

6. 链表不具有的特点是A 。

A.可随机访问任一元素

B.插入和删除时不需要移动元素

C.不必事先估计存储空间

D.所需空间与线性表的长度成正比

7.线性链表中各链结点之间的地址 C 。

A.必须连续

B.部分地址必须连续

C.不一定连续

D.连续与否无关

8. 以下关于链式存储结构的叙述中, C 是不正确的。

A.结点除自身信息外还包括指针域,因此存储密度小于顺序存储结构

B.逻辑上相邻的结点物理上不必邻接

C.可以通过计算直接确定第i个结点的存储地址

D.插入、删除操作方便,不必移动结点

9. 设依次进入一个栈的元素序列为d, a, c, b,得不到出栈的元素序列为D 。

A. dcba

B. acdb

C. abcd

D. cbda

10. 将新元素插入到链式队列中时,新元素只能插入到 B 。

A. 链头

B. 链尾

C. 链中

D. 第i个位置,i大于等于1,大于等于表长加1

11. 设栈S和队列Q的初始状态为空,元素e1、e2、e3、e4、e5和e6依次通过栈S,一

个元素出栈后即进入队列Q,若6个元素出队的顺序是e2、e4、e3、e6、e5、和e1,则栈S容量至少应该是 C 。

A. 6

B. 4

C. 3

D. 2

12.下面 D 是‘abcd321ABCD’的子串。

A. abcd

B. 321ab

C. ‘abc ABC’

D. ‘21AB’

13.假设8行10列的二维数组A[1…8,1…10]分别以行序为主序和以列序为主序顺序存

储时,其首地址相同,那么以行序为主序时元素a[3,5]的地址与以列序为主序时 C 元素相同。

A. a[7,3]

B. a[8,3]

C. a[1,4]

D. ABC都不对

14. 数组A[0…5,0…6]的每个元素占5个字节,将其按列优先次序存储在起始地址为1000

的内存单元中,则元素A[5,5]的地址为 A 。

A. 1175

B. 1180

C. 1205

D.1210

15.下列广义表中,长度为3的广义表为 B 。

A.(a,b,c,( ))

B. ((g),(a,b,c,d,f),( ))

C. (a,(b,(d)))

D. ((( )))

16. 以下关于广义表的叙述中,正确的是 A 。

A. 广义表是0个或多个单元素或子表组成的有限序列

B. 广义表至少有一个元素是子表

C. 广义表不可以是自身的子表

D. 广义表不能为空表

17.若树T有a个度为1的结点,b个度为2的结点,c个度为3的结点,则该树有 D 个

叶结点。

A. 1+2b+3c

B. a+2b+3c

C.2b+3c

D. 1+b+2c

18.若一棵二叉树有102片叶子结点,则度二叉树度为2的结点数是 B 。

A. 100

B. 101

C. 102

D. 103

19. 在有n 个叶子结点的霍夫曼树中,其结点总数为:。

A. n

B. 2n

C. 2n +1

D. 2n - 1

20.具有12个结点的完全二叉树有 B 。

A. 5个叶子结点

B. 5个度为2的结点

C. 7个分支结点

D. 2个度为1的结点

21.设结点x和y是二叉树中的任意两结点,若在先根序列中x在y之前,而后根序列中x

在y之后,则x和y的关系是 C 。

A. x是y的左兄弟

B. x是y的右兄弟

C. x是y的祖先

D. x是y的后代

22. 先序遍历序列与中序遍历序列相同的二叉树为。

A. 根结点无左子树的二叉树

B.根结点无右子树的二叉树

C. 只有根结点的二叉树或非叶子结点只有左子树的二叉树

D. 只有根结点的二叉树或非叶子结点只有右子树的二叉树

23.若二叉树T的前序遍历序列和中序遍历序列分别是bdcaef和cdeabf,则其后序遍历序列为 A 。

A. ceadfb

B. feacdb

C. eacdfb

D. 以上都不对

24.设无向图的顶点个数为n,则该图最多有 C 条边。

A. n-1

B. n(n-1)

C. n(n-1)/2

D. n

25.对于一个有n个顶点和e条边的无向图,若采用邻接表表示,邻接表中的结点总数是

C 。

A. e/2

B. e

C. n+2e

D. n+e

26. 无向图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)}。

对该图进行深度优先遍历,下面不能得到的序列是 D 。

A. acfdeb

B. aebdfc

C. aedfcb

D. abecdf

27.在下述排序方法中,不属于内排序方法的是 C 。

A. 插入排序法

B. 选择排序法

C. 拓扑排序法

D. 归并排序法

28. 直接插入排序在最好情况下的时间复杂度为 B 。

A. O(log2n)

B. O(n)

C. O(nlog2n)

D. O(n2)

29.对有n个记录的表作快速排序,在最坏情况,算法的时间复杂度是 D 。

A. O(n3)

B. O(n)

C. O(nlog2n)

D. O(n2)

30.下面的排序算法中,稳定是 A 。

A. 直接插入排序法

B. 快速排序法

C. 直接选择排序法

D. 堆排序法

二、填空题

1. 一个算法具有5个特性:、、、有零个或多个输入,

一个或多个输出。

2. .设数组a[1…50,1…80]的基地址为2000,每个元素占2个存储单元,若以行序为主序

顺序存储,则元素a[45,68]的存储地址为9174 ;若以列序为主序顺序存储,则元素a[45,68]的存储地址为8788 。

3. 当线性表的元素总数基本稳定,且很少进行插入和删除操作,但要求以最快的速度存取

线性表中的元素时,应采用存储结构。

4.两个字符串相等的充分必要条件是长度相等且对应位置上的字符相等。

5. 字符串“abcd”中共有个长度大于0的字串。

6. 广义表list=(5,(3,2,(14,9,3),(),4),2,(6,3,10))的长度及深度分别

为和。

7.若二叉树的先序序列和后序序列相反,则该二叉树一定满足只有一个叶子结点。

8.若无向图满足有n-1条边的连通图,则该图是树。

9.若无向图中有n个顶点,则其边数最少为n-1 ,最多为n(n-1)/2 。

10.堆排序的时间复杂度和空间复杂度分别为O(nlog2n) 和O(1) 。

三、名词解释

(1)抽象数据类型(2)算法及其特性(3)串的模式匹配(4)优先级队列

(5)完全二叉树(6)堆(7)Huffman编码(8)Huffman树

(9)连通分量及重连通分量(10)最小生成树(11)克鲁斯卡尔算法

(12)普里姆算法(13)希尔排序(14)快速排序

(15)教材等等相关名次解释题

四、简答题

1. 请对线性表进行顺序存储和链式存储的特点作比较。(西电2004年考研试题)

2. 单链表为什么要引入头结点?

3.线性表的链式存储结构有单链表、循环链表、双向链表,试问它们各有什么优点和缺点?

参考答案:

●单链表的优点是空间动态分配,插入和删除时不需要移动数据,缺点是不

能随机访问数据。和其它两种相比,它还节省了空间。

●循环链表除了具有单链表的优点外,它从任意结点出发可以找到其它结

点。缺点同单链表的缺点。

●双向链表除了具有循环链表的优点,它还可以方便地找到某个结点的前

驱。缺点是增加了空间开销。

4.内存中一片连续空间(不妨假设地址从1到m),提供给两个栈使用,怎样分配这部分

存储空间,使得对任一个栈,仅当这部分空间全满时才发生上溢。

5. 假设有一个适当大小的栈S,输入栈的序列为A,B,C,D,E。

问:(1)能否得到下列的输出序列:① B,C,D,E,A;② E,A,B,C,D;

③E,D,C,B,A。

(2)写出所有可能正确的输出序列(至少5种)。

6.用向量表示的循环队列的队首和队尾位置分别为1和max_size,试给出判断队列为空和

为满的边界条件。

●参考答案:

队空条件为max_size==1;

队满的条件为(max_size+1)%MAXSIZE.

7. 设一棵二叉树后序遍历序列为DGJHEBIFCA,中序遍历序列为DBGEHJACIF,要求:

(1)画出该二叉树;

(2)写出该二叉树的先序遍历序列;

(3)画出该二叉树对应的森林。

8.对二叉树中的结点按层次顺序(每一层自左向右)进行的访问操作称为二叉树的层次遍

历。现已知一棵二叉树的层次序列为AEBGFDIMH,中序遍历序列为GEFAMDBHI。

请画出该二叉树并写出其先序序列。若将该二叉树看作是一个森林的孩子—兄弟表示,请画出该森林。(西电2004年考研试题)

9. 已知某通信电文仅由A、B、C、D、E、F这6个字符构成,其出现的频率分别为23、

5、14、8、25、7,请给出它们的霍夫曼树及其对应的霍夫曼编码。

10.给定下列图G用两种不同表示法画出该图的存储结构图。

11. 针对上图分别用卡鲁斯卡尔及普里姆算法给出该图的最小生成树,画出其逻辑结构。

12.总结直接插入排序、折半插入排序、希尔排序、起泡排序、快速排序、简单选择排序、

锦标赛排序、堆排序及归并排序等在最好情况下、最坏情况及平均的时间复杂度,辅助空间复杂度及稳定性。

13.判断下面的每个结点序列是否表示一个堆,如果不是堆,请把它调整为堆。

(1)100,90,80,60,85,75,20,25,10,70,65,50

(2)100,70,50,20,90,75,60,25,10,85,65,80

14.已知一序列(12,70,33,65,24,56,48,92,86,33),问该序列是否是堆?如果

不是,则把它调整为小顶堆。并问把该序列调整为堆共需要多少次元素间的比较?多少次元素间的交换。(西电2005年考研试题)

15.试为下列情况选择合适的排序算法:(西电2006年考研试题)

(1)n=30,且要求最坏情况下速度最快;

(2)n=30,且要求既要快,又要排序稳定;

(3)n=2000,要求平均情况下速度最快;

(4)n=2000,要求最坏情况下速度最快,又要节省存储空间。

五、算法设计题

1. 实现一个算法,完成在不带表头结点的单链表第i个结点之前插入新元素x的操作。

(教材P74页)

2.(a)实现一个函数,完成在带表头结点的双向循环链表中,建立一个包含有值value 的新结点并将其插入到当前结点之后。(教材P91页)

(b)实现一个函数,完成在带表头结点的双向循环链表中删除当前结点,同时让当前指针指到链表中下一个结点位置。(教材P91页)

3.(a)实现一个函数完成删除链式栈顶结点,返回被删栈顶元素的值。(教材P107页)

(b)实现一个函数完成删除链式队列队头结点,并返回被删对头元素的值。(教材P117页)

4.对二叉链表,实现一个函数Parent(*BinTreeNode*start,

*BinTreeNode*curent)从结点start开始,搜索结点current的双亲结点,并返回

其地址,否则返回NULL。(教材P171页)

5. 若用二叉链表作为二叉树的存储表示,试针对下列问题编写递归算法:

(1)统计二叉树中叶子结点的个数;

(2)交换每个结点的左子女和右子女。

6.熟练掌握直接插入排序、折半插入排序、希尔排序、起泡排序、快速排序等其它排序的

算法

7.若以域变量rear和length分别指示循环队列中队尾元素的位置和队列中元素的个数。请

完成下面的入队列和出队列的算法:(西电2004年考研试题)

#define MAXQSIZE 100 //最大队列长度

Type struct{

Qelemtype *base; //base为队列所在区域的首地址

int length; //队列长度

int rear; //队尾元素位置

}SqQueue;

Status EnQueue(SqQueue &Q, Qelemtype e)

if ( ①) return ERROR; // 队列满,无法插入

Q.rear= ②; //计算元素e的插入位置

③= e; //在队尾加入新的元素

Q.length++; //队列长度加1

return OK;

Status DeQueue(SqQueue &Q, Qelemtype &e) //删除对头元素,并用e带回其值

if ( ④)return ERROR; //队列满

e=Q.base[ ⑤]; //取队头元素

Q.length --; //队列长度减1

return OK;

8.请运用快速排序思想,设计递归算法实现求n(n>1)个不同元素集合中的第i(1≤i ≤n)小元素。(西电2004年考研试题)

9.阅读下列函数说明及相应代码,在空白处填入相应语句。

(西电2005年考研试题)

[函数1]

函数palinddrome(char s[])的功能是:判断字符串s是否为回文字符串,若是,则返回0,否则返回-1。若一个字符串顺读和倒读都一样时,称该字符串是回文字符串,例如:“LEVEL”是回文字符串,而“LEV AL”不是。

Int palindrome (char s[])

{char *pi, *pj;

Pi = s; pj =s + strlen(s) – 1; //*strlen(s)函数用于求得串s的串长

While(pi<pj && ①){

Pi ++; pi - - ;

}

if ( ②)return - 1;

else return 0;

}

[函数2]

函数insert_sort(int a[],int count)是用直接插入排序法对指定数组的前count个元素从小到大排序。

V oid insert_sort(int a[], int count)

{ int i, j, t;

for (i=1;i<count;i++){//控制a[i],…a[count-1]的比较和插入

t = a[i];

j= ③;

while (j≥0&&t<a[j]){ //在有序部分寻找元素a[i]的插入位置

④;

j - -;

}

⑤;

}

}

10. 假设以数组seq[0…m-1]存放循环队列中的元素,同时设变量rear和quelen分别指示循环队列中的队尾元素的位置和内含元素的个数。(西电2006年考研试题) 请给出:

(1)给出循环队列的队满条件和队空条件;

(2)写出相应的入队列和出队列的算法,并分别分析其时间代价;

(3)如果用数组sequ[m…n]来存放循环队列中的元素,则(2)中的入队列和出队列的算法中的哪些语句要修改?如何修改?

《数据结构》期末考试复习题 第1章 绪论

第1章绪论 一、选择题 1. 算法的计算量的大小称为计算的()。【北京邮电大学2000 二、3 (20/8分)】 A.效率 B. 复杂性 C. 现实性 D. 难度 2. 算法的时间复杂度取决于()【中科院计算所 1998 二、1 (2分)】 A.问题的规模 B. 待处理数据的初态 C. A和B 3.计算机算法指的是(1),它必须具备(2)这三个特性。 (1) A.计算方法 B. 排序方法 C. 解决问题的步骤序列 D. 调度方法 (2) A.可执行性、可移植性、可扩充性 B. 可执行性、确定性、有穷性 C. 确定性、有穷性、稳定性 D. 易读性、稳定性、安全性 【南京理工大学 1999 一、1(2分)【武汉交通科技大学 1996 一、1( 4分)】4.一个算法应该是()。【中山大学 1998 二、1(2分)】 A.程序 B.问题求解步骤的描述 C.要满足五个基本特性 D.A和C. 5. 下面关于算法说法错误的是()【南京理工大学 2000 一、1(1.5分)】 A.算法最终必须由计算机程序实现 B.为解决某问题的算法同为该问题编写的程序含义是相同的 C. 算法的可行性是指指令不能有二义性 D. 以上几个都是错误的 6. 下面说法错误的是()【南京理工大学 2000 一、2 (1.5分)】 (1)算法原地工作的含义是指不需要任何额外的辅助空间 (2)在相同的规模n下,复杂度O(n)的算法在时间上总是优于复杂度O(2n)的算法(3)所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界 (4)同一个算法,实现语言的级别越高,执行效率就越低 A.(1) B.(1),(2) C.(1),(4) D.(3) 7.从逻辑上可以把数据结构分为()两大类。【武汉交通科技大学 1996 一、4(2分)】A.动态结构、静态结构 B.顺序结构、链式结构 C.线性结构、非线性结构 D.初等结构、构造型结构 8.以下与数据的存储结构无关的术语是()。【北方交通大学 2000 二、1(2分)】A.循环队列 B. 链表 C. 哈希表 D. 栈 9.以下数据结构中,哪一个是线性结构()?【北方交通大学 2001 一、1(2分)】A.广义表 B. 二叉树 C. 稀疏矩阵 D. 串 10.以下那一个术语与数据的存储结构无关?()【北方交通大学 2001 一、2(2分)】A.栈 B. 哈希表 C. 线索树 D. 双向链表 11.在下面的程序段中,对x的赋值语句的频度为()【北京工商大学 2001 一、10(3分)】 FOR i:=1 TO n DO FOR j:=1 TO n DO x:=x+1; A. O(2n) B.O(n) C.O(n2) D.O(log2n) 12.程序段 FOR i:=n-1 DOWNTO 1 DO FOR j:=1 TO i DO IF A[j]>A[j+1]

数据结构与算法分析—期末复习题及答案

数据结构与算法分析—期末复习题及答案 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, G b) 给出选择排序算法的伪代码: ``` for i in range(len(arr)): min_index = i for j in range(i+1, len(arr)): if arr[j] < arr[min_index]: min_index = j arr[i], arr[min_index] = arr[min_index], arr[i] ``` 4. 案例题 假设有一个包含100个元素的整数数组arr,对该数组进行排序后返回结果。请使用任意一种排序算法,并给出算法的时间复杂度。 解答示例:我们可以使用快速排序算法来对数组进行排序,时间复杂度为O(nlogn)。下面是该算法的Python代码实现: ``` def quick_sort(arr): if len(arr) <= 1: return arr

数据结构期末考试复习试题(整理完的)

数据结构期末考试复习试题(整理完的) 数据结构与算法》复题 一、选择题 1.数据结构可以从逻辑上分为线性结构和非线性结构。 2.数据结构在计算机内存中的表示是指数据的存储结构。 3.在数据结构中,与所使用的计算机无关的是数据的逻辑结构。 4.在存储数据时,通常不仅要存储各数据元素的值,而且还要存储数据元素之间的关系。 5.在决定选取何种存储结构时,一般不考虑各节点的值如何。

6.一些表面上很不相同的数据可以有相同的逻辑结构。 7.算法分析的目的是分析算法的效率以求改进,算法分析的两个主要方面是空间复杂度和时间复杂度。 8.下面程序段的时间复杂度是O(n²)。 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 = 1; while (i <= n) i = i * 3; 11.二维数组是其数据元素为线性表的线性表。 12.通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着不仅数据元素所包含的数据项的个数要相同,而且对应的数据项的类型要一致。 13.链表不具备的特点是可随机访问任一结点。 14.不带头结点的单链表head为空的判定条件是head == NULL。 15.带头结点的单链表head为空的判定条件是head->next == NULL。

数据结构期末考试复习试题(整理完的)

《数据结构与算法》复习题 一、选择题。 1.在数据结构中,从逻辑上可以把数据结构分为 C 。 C.线性结构和非线性结构 2.数据结构在计算机内存中的表示是指 A 。 A.数据的存储结构 3.在数据结构中,与所使用的计算机无关的是数据的 A 结构。 A.逻辑 4.在存储数据时,通常不仅要存储各数据元素的值,而且还要存储 C 。C.数据元素之间的关系 5.在决定选取何种存储结构时,一般不考虑 A 。 A.各结点的值如何 6.以下说法正确的是 D 。 D.一些表面上很不相同的数据可以有相同的逻辑结构 7.算法分析的目的是 C ,算法分析的两个主要方面是 A 。 (1)C.分析算法的效率以求改进 (2)A.空间复杂度和时间复杂度 8.下面程序段的时间复杂度是O(n2) 。 s =0; for( I =0; i

13.链表不具备的特点是 A 。 A.可随机访问任一结点 14.不带头结点的单链表head为空的判定条件是 A 。 A.head == NULL 15.带头结点的单链表head为空的判定条件是 B 。 B head->next ==NULL 16.若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点,则采用 D 存储方式最节省运算时间。 D.带头结点的双循环链表 17.需要分配较大空间,插入和删除不需要移动元素的线性表,其存储结构是 B 。 B.静态链表 18.非空的循环单链表head的尾结点(由p所指向)满足 C 。 C.p->next ==head 19.在循环双链表的p所指的结点之前插入s所指结点的操作是 D 。 D.s->next = p;s->prior = p->prior;p->prior->next = s;p->prior = s 20.如果最常用的操作是取第i个结点及其前驱,则采用 D 存储方式最节省时间。 D.顺序表 21.在一个具有n个结点的有序单链表中插入一个新结点并仍然保持有序的时间复杂度是 B 。 B.O(n) 22.在一个长度为n(n>1)的单链表上,设有头和尾两个指针,执行 B 操作与链表的长度有关。B.删除单链表中的最后一个元素 23.与单链表相比,双链表的优点之一是 D 。 D.顺序访问相邻结点更灵活 24.如果对线性表的操作只有两种,即删除第一个元素,在最后一个元素的后面插入新元素,则最好使用B 。 B.只有表尾指针没有表头指针的循环单链表 25.在长度为n的顺序表的第i个位置上插入一个元素(1≤ i ≤n+1),元素的移动次数为: A 。A.n – i + 1 B.n – i C.i D.i – 1 26.对于只在表的首、尾两端进行插入操作的线性表,宜采用的存储结构为 C 。 C.用尾指针表示的循环单链表 27.下述哪一条是顺序存储结构的优点? C 。 C存储密度大

数据结构期末考试试题(含答案)

数据结构期末考试试题(含答案)数据结构期末考试试题(含答案) 第一题:多项式相加(20分) 将两个多项式 P(x) 和 Q(x) 相加,结果存储在另一个多项式 S(x) 中,请写出相应的算法,并给出其时间复杂度分析。 答案: 算法如下: 1. 初始化一个空多项式 S(x)。 2. 分别取多项式 P(x) 和 Q(x) 的第一项,判断指数的大小关系,并 将指数较小的项加入 S(x)。 3. 若指数相同,则将两项系数相加,并将结果加入 S(x)。 4. 重复步骤2和步骤3,直到两个多项式中的所有项都被处理完。 5. 返回结果多项式 S(x)。 时间复杂度分析: - 假设 P(x) 和 Q(x) 的项数分别为 m 和 n。 - 在最坏情况下,需要比较 m+n 次指数大小,并进行 m+n-1 次系数 相加。 - 因此,该算法的时间复杂度为 O(m+n)。

第二题:循环队列设计(30分) 请设计一个循环队列,实现入队、出队等基本操作,并给出时间复杂度分析。 答案: 定义循环队列的结构体如下: ```c typedef struct { int *data; // 存储队列元素的数组 int front; // 队首指针,指向队首元素的位置 int rear; // 队尾指针,指向队尾的下一个位置 int maxSize; // 队列的最大容量 } CircularQueue; ``` 基本操作的实现如下: 1. 初始化循环队列: ```c void initQueue(CircularQueue *queue, int maxSize) { queue->data = (int *)malloc(sizeof(int) * maxSize);

电大《数据结构》2020-2021期末试题及答案

电大《数据结构》2020-2021期末试题及答案 一、单项选择题 1. 一个数组元素a 与( A )的表示等价。 A. *(a+i) B. a+i C. *a+i D. &a+I 2.执行下面程序段时,执行S语句的次数为( D )。 for(int i=1; i<=n; i++) for(int j=1; j<=i; j++) S; A. n2 B. n2/2 C. n(n+1) D. n(n+1)/2 3. 当一个作为实际传递的对象占用的存储空间较大并可能被修改时,应最好说明为( B ),以节省参数值的传输时间和存储参数的空间。 A. 基本类型 B. 引用型 C. 指针型 D. 常值引用型 4. 输出一个二维数组b[m][n]中所有元素值的时间复杂度为( D )。 A. O(n) B. O(m+n) C. O(n2) D. O(m*n) 5. 某算法仅含程序段1和程序段2,程序段1的执行次数3n2,程序段2的执行次数为 0.01n3,则该算法的时间复杂度为( C )。 A. O(n) B. O(n2) C. O(n3) D. O(1) 6. 多维数组实际上是由嵌套的( A )实现的。 A. 一维数组 B. 多项式 C. 三元组表 D. 简单变量 7. 在一个长度为n的顺序表中删除第i个元素(0≤i≤n-1)时,需要从前向后依次前移( C )个元素。 A. n-i B. n-i+1 C. n-i-1 D. i 8. 在一个长度为n的顺序表的任一位置插入一个新元素的渐进时间复杂度为( A )。 A. O(n) B. O(n/2) C. O(1) D. O(n2) 9. 设有一个n´n的对称矩阵A,将其上三角部分按行存放在一个一维数组B中,A[0][0]存放于B[0]中,那么第i行的对角元素A存放于B中( C )处。 A. (i+3)*i/2 B. (i+1)*i/2 C. (2n-i+1)*i/2 D. (2n-i-1)*i/2 10. 不带头结点的单链表first为空的判定条件是( A )。 A. first == NULL; B. first->link == NULL; C. first->link == first; D. first != NULL;

2022年西安科技大学计算机科学与技术专业《数据结构与算法》科目期末试卷A(有答案)

2022年西安科技大学计算机科学与技术专业《数据结构与算法》科目 期末试卷A(有答案) 一、选择题 1、若需在O(nlog2n)的时间内完成对数组的排序,且要求排序是稳定的,则可选择的 排序方法是()。 A.快速排序 B.堆排序 C.归并排序 D.直接插入排序 2、用数组r存储静态链表,结点的next域指向后继,工作指针j指向链中结点,使j沿 链移动的操作为()。 A.j=r[j].next B.j=j+l C.j=j->next D.j=r[j]->next 3、线性表的顺序存储结构是一种()。 A.随机存取的存储结构 B.顺序存取的存储结构 C.索引存取的存储结构 D.Hash存取的存储结构 4、在用邻接表表示图时,拓扑排序算法时间复杂度为()。 A.O(n) B.O(n+e) C.O(n*n) D.O(n*n*n) 5、用不带头结点的单链表存储队列,其队头指针指向队头结点,队尾指针指向队尾结点,则在进行出队操作时()。 A.仅修改队头指针 B.仅修改队尾指针 C.队头、队尾指针都可能要修改 D.队头、队尾指针都要修改 6、循环队列放在一维数组A中,end1指向队头元素,end2指向队尾元素的后一个位置。假设队列两端均可进行入队和出队操作,队列中最多能容纳M-1个元素。初始时为空, 下列判断队空和队满的条件中,正确的是()。 A.队空:end1==end2;队满:end1==(end2+1)mod M B.队空:end1==end2;队满:end2==(end1+1)mod (M-1) C.队空:end2==(end1+1)mod M;队满:end1==(end2+1) mod M

西安电子科技大学计算机期末考试试卷A及答案

西安电子科技大学 考试时间 120 分钟 试题 1.考试形式:闭卷; 2.本试卷共四大题,满分100分。 班级学号姓名任课教师 一、选择题(20分) 1.数据的逻辑结构是数据结构中结点间的相互关系,按逻辑关系的不同,数据结构通常可分为两类。 A. 线性结构和非线性结构 B. 顺序结构和索引结构 C. 动态结构和静态结构 D. 顺序结构和链式结构 2. 单向循环链表的主要优点是。 A. 不需要能标识链表的头指针和尾指针 B. 查找表中任一结点的直接前驱和直接后继的时间复杂度为O(1) C. 在进行删除操作后,能保证链表不断开 D. 从表中任一结点出发都能遍历整个链表 3. 用栈来检查算术表达式中的括号是否匹配的方法是:初始栈为空,从左到右扫描表达式,遇到“(”就将其入栈,遇到“)”就执行出栈操作。检查算术表达式“((a+b/(a+b)-c/a)/b”时,,因此该表达式中的括号不匹配。 A. 栈为空却要进行出栈操作 B. 栈已满却要进行入栈操作 C. 表达式处理已结束,栈中仍留有字符“(” D. 表达式处理已结束,栈中仍留有字符“)” 4. 给定一个有n个元素的线性表。若采用顺序存储结构(数组存储),则在等概率下,删除其中一个元素平均需要移动的元素数为。 A. logn B. n C. (n-1)/2 D. (n+1)/2

5. 若某有向图中的顶点不能排成一个拓扑序列,则可断定该图 。 A. 是完全图 B. 是强连通图 C. 有回路 D. 是有向无环图 6. 已知入栈序列是1,2,…,n ,若第一个出栈的元素为1,则第i 个出栈的元素是 。 A. n-i B. i C. n D. 不确定 7. 已知x 是某完全二叉树的一个结点,若x 没有左孩子,则x 必然没有 结点。 A. 父亲 B. 右孩子 C. 左兄弟 D. 右兄弟 8. 若总是以待排序列的第一个元素作为基准元素进行快速排序,那么最好情况下,算法的时间复杂度为 。 A. )(log 2n O B. )(n O C. )log (2n n O D. )(2n O 9. 树采用孩子-兄弟表示法,与下图所示的树对应的二叉树是 。 10. 是下图的一个拓扑序列。 A. 1 2 3 4 5 6 7 B. 1 5 2 6 3 7 4 C. 5 1 2 6 3 4 7 D. 5 1 2 3 7 6 4 二、填空题(20分) 1.算法的有效性是指 。 2.已知串S=‘aaaaba ’,其Next 数组值为 。 3. 在有序表M[1..10]中进行二分查找(或折半查找,向下取整),则待查找的元素为M[3]时,被比较的元素依次为 。 4. 若广义表L=(a,(b,(c))),则L 的表头和表尾分别为 。 5.关键路径是指AOE (Activity On Edge )网中从源点到汇点的 。

2022年西安电子科技大学计算机科学与技术专业《数据结构与算法》科目期末试卷A(有答案)

2022年西安电子科技大学计算机科学与技术专业《数据结构与算法》 科目期末试卷A(有答案) 一、选择题 1、无向图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)},对该图进行深度优先遍历,得到的顶点序列正确的是 ()。 A.a,b,e,c,d,f B.a,c,f,e,b,d C.a,e,b,c,f, d D.a,e,d,f,c,b 2、将两个各有N个元素的有序表归并成一个有序表,其最少的比较次数是()。 A.N B.2N-1 C.2N D.N-1 3、以下数据结构中,()是非线性数据结构。 A.树 B.字符串 C.队 D.栈 4、用不带头结点的单链表存储队列,其队头指针指向队头结点,队尾指针指向队尾结点,则在进行出队操作时()。 A.仅修改队头指针 B.仅修改队尾指针 C.队头、队尾指针都可能要修改 D.队头、队尾指针都要修改 5、动态存储管理系统中,通常可有()种不同的分配策略。 A.1 B.2 C.3 D.4 6、已知字符串S为“abaabaabacacaabaabcc”,模式串t为“abaabc”,采用KMP算法进行 匹配,第一次出现“失配”(s!=t)时,i=j=5,则下次开始匹配时,i和j的值分别 ()。 A.i=1,j=0 B.i=5,j=0 C.i=5,j=2 D.i=6,j=2 7、下列关于无向连通图特性的叙述中,正确的是()。 Ⅰ.所有的顶点的度之和为偶数Ⅱ.边数大于顶点个数减1 Ⅲ.至少有一个顶点的度为1

A.只有Ⅰ B.只有Ⅱ C.Ⅰ和Ⅱ D.Ⅰ和Ⅲ 8、设X是树T中的一个非根结点,B是T所对应的二叉树。在B中,X是其双亲的右孩子,下列结论正确的是()。 A.在树T中,X是其双亲的第一个孩子 B.在树T中,X一定无右兄弟 C.在树T中,X一定是叶结点 D.在树T中,X一定有左兄弟 9、一个具有1025个结点的二叉树的高h为()。 A.11 B.10 C.11至1025之间 D.10至1024之间 10、下列二叉排序树中查找效率最高的是()。 A.平衡二叉树 B.二叉查找树 C.没有左子树的二叉排序树 D.没有右子树的二叉排序树 二、填空题 11、起始地址为480,大小为8的块,其伙伴块的起始地址是______;若块大小为32,则其伙伴块的起始地址为______。 12、下面程序的功能是用递归算法将一个整数按逆序存放到一个字符数组中。如123存放成321。请填空:

数据结构期末考试试题及答案

数据结构期末考试试题及答案 数据结构期末考试试题及答案 随着信息时代的到来,数据的处理和管理变得愈发重要。数据结构作为计算机科学的基础课程之一,对于培养学生的编程思维和解决问题的能力具有重要意义。数据结构期末考试是对学生掌握该课程知识的一次全面检验。本文将为大家提供一些常见的数据结构期末考试试题及答案,希望能够对大家复习备考有所帮助。 1. 请解释什么是数据结构,并举例说明。 数据结构是指在计算机中组织和存储数据的方式。它关注的是数据的逻辑关系和操作,而不仅仅是数据本身。常见的数据结构有数组、链表、栈、队列、树等。举例来说,数组是一种线性结构,它将相同类型的数据元素按照一定的顺序存储在一块连续的内存空间中,可以通过索引来访问和修改元素。 2. 请说明数组和链表的区别,并分别列举它们的优缺点。 数组和链表都是常见的线性数据结构,但它们在存储方式和操作上有所不同。数组将元素存储在连续的内存空间中,通过索引可以直接访问和修改元素。链表则通过节点和指针的方式将元素串联起来,每个节点包含数据和指向下一个节点的指针。 数组的优点是访问速度快,可以通过索引直接定位元素,适合随机访问。缺点是插入和删除操作比较耗时,需要移动其他元素。链表的优点是插入和删除操作简单高效,只需要修改指针即可,不需要移动其他元素。缺点是访问速度较慢,需要遍历链表才能找到指定位置的元素。 3. 请解释什么是栈和队列,并分别列举它们的应用场景。

栈和队列都是常见的线性数据结构,它们在数据的插入和删除操作上有所不同。栈是一种后进先出(LIFO)的数据结构,只允许在栈顶进行插入和删除操作。 队列是一种先进先出(FIFO)的数据结构,允许在队尾进行插入操作,在队头 进行删除操作。 栈的应用场景有很多,比如函数调用栈、表达式求值、括号匹配等。函数调用 栈用于保存函数的局部变量和返回地址,保证函数的正确执行顺序。表达式求 值中,栈可以用于保存运算符和中间结果,实现正确的计算顺序。括号匹配中,栈可以用于检查括号是否匹配。 队列的应用场景也很广泛,比如任务调度、缓冲区管理、打印队列等。任务调 度中,队列可以用于按照先后顺序执行任务,保证任务的公平性。缓冲区管理中,队列可以用于控制数据的输入和输出,避免数据丢失或混乱。打印队列中,队列可以用于保存打印任务,按照先后顺序进行打印。 4. 请解释什么是树,并列举一些常见的树结构。 树是一种非线性的数据结构,它由节点和边组成,每个节点可以有多个子节点。树的一个节点称为根节点,没有子节点的节点称为叶子节点。常见的树结构有 二叉树、二叉搜索树、平衡二叉树、堆等。 二叉树是一种特殊的树结构,每个节点最多有两个子节点。二叉搜索树是一种 特殊的二叉树,它的左子树的值都小于根节点的值,右子树的值都大于根节点 的值。平衡二叉树是一种特殊的二叉搜索树,它的左右子树的高度差不超过1,保证了树的平衡性。堆是一种特殊的二叉树,它可以分为最大堆和最小堆,用 于高效地查找最大值或最小值。 5. 请解释什么是哈希表,并说明它的优缺点。

数据结构期末复习题(有答案)

一、单选题 1. 从物理上可以把数据结构分为(B)两大类。 A. 动态结构、静态结构 B. 顺序结构、链式结构 C. 线性结构、非线性结构 D. 初等结构、构造型结构 2. 若长度为n的线性表采用顺序存储结构,在其第i个位置插入一个新元素的算法的时间复杂度为(C )(1≤i≤n+1)。 A. O(0) B. O(1) C. O(n) D. O(n2) 3. 链表不具有的特点是(B)。 A. 插入、删除不需要移动元素 B. 可随机访问任一元素 C. 不必事先估计存储空间 D. 所需空间与线性长度成正比 4. 下列排序算法中(C)排序在一趟结束后不一定能选出一个元素放在其最终位置上。 A. 选择 B. 起泡 C. 归并 D. 堆 5. 在下列排序算法中,哪一个算法的时间复杂度与初始排序无关(D )。 A. 插入排序 B. 起泡排序 C. 快速排序 D. 选择排序 6. 一个栈的输入序列为1,2,3,…,n,若输出序列的第一个元素是i,则第j个输出元素是(D)。 A. i-j-1 B. i-j C. j-i+1 D. 不确定 7. 输入序列为ABC,可以变为BCA时,经过的栈操作为(D )。 A. push,pop,push,pop,push,pop B. push,push,push,pop,pop,pop C. push,push,pop,pop,push,pop D. push,push,pop,push,pop,pop 8. 有六个元素6 5 4 3 2 1 的顺序进栈,下列(C )不是合法的出栈序列。 A. 5 4 3 6 1 2 B. 4 5 3 1 2 6 C. 3 4 6 5 2 1 D. 2 3 4 1 5 6 9. 串的长度是指(B )。 A. 串中所含不同字母的个数 B. 串中所含字符的个数 C. 串中所含不同字符的个数 D. 串中所含非空格字符的个数 10. 设二维数组A[1.. m,1.. n](即m行n列)按行存储在数组B[1.. m*n]中,则二维数组元素A[i,j]在一维数组B中的下标为( A)。 A.(i-1)*n+j B.(i-1)*n+j-1 C. i*(j-1) D. j*m+i-1 11. 若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是(B )。 A. 9 B. 11 C.15 D. 不确定 12. 已知某二叉树的后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历是(D )。 A. acbed B. decab C. deabc D. cedba 13. 下面几个符号串编码集合中,不是前缀编码的是(B)。 A. {0,10,110,1111} B. {11,10,001,101,0001} C. {00,010,0110,1000} D. {b,c,aa,ac,aba,abb,abc} 14. 一个n个顶点的连通无向图,其边的个数至少为(A )。 A. n-1 B. n C. n+1 D. nlogn; 15. 在有向图G的拓扑序列中,若顶点Vi在顶点Vj之前,则下列情形不可能出现的是(D )。 A. G中有弧 B. G中有一条从Vi到Vj的路径 C. G中没有弧 D. G中有一条从Vj到Vi的路径 16. 在图采用邻接表存储时,求最小生成树的Prim 算法的时间复杂度为(C )。 A. O(n) B. O(n+e) C. O(n2) D. O(n3) 17. 下面关于二分查找的叙述正确的是(D )。

电子科技大学数据结构20春期末考试

1.判断一个循环队列Q (最多n个元素)为满的条件是()。 A.Q->rear==Q->front B.Q->rear==Q->front+1 C.Q->front==(Q->rear+ 1)%n D.Q->front==(Q->rear-1)%n 【参考答案】:C 2.通常从正确性、易读性、健壮性、高效性等四个方面评价算法的质量, 以下解释错误的是()。 A.正确性算法应能正确地实现预定的功能 B.易读性算法应易于阅读和理解,以便调试、修改和扩充 C.健壮性当环境发生变化时,算法能适当地做出反应或进行处理,不会产生不需要的运行结果 D.高效性即达到所需要的时间性能空间 【参考答案】:D 3.对n个元素的表做顺序查找时,若查找每个元素的概率相同,则平均 查找长度为()。 A.(n-1)/2 B.(n+1)/2 C.n/2 D.n 【参考答案】:B 4.通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着 ()。 A.数据元素具有同一特点 B.不仅数据元素所包含的数据项的个数要相同,而且对应的数据项的类型要一致 C.每个数据元素都一样 D.数据元素所包 含的数据项的个数要相等 【参考答案】:B 5.在一个无向图中,所有顶点的度数之和等于所有边数的()。 A.1/2 B.2 倍 C.4 倍 D.8 倍【参考答案】:B

6.具有n个结点的连通图至少有()。 A.n-1 B.n C.n(n-1)/2 D.2n 【参考答案】:A 7.关键路径是事件结点网络中()。 A.从源点到汇点的最长路径 B.从源点到汇点的最短路径 C.最长的回 路 D.最短的回路 【参考答案】:A 8.需要分配较大空间,插入和删除不需要移动元素的线性表,其存储结构是()。 A.单链表 B.静态链表 C.线性链表 D.顺序存储结构 【参考答案】:B 9.对某二叉树进行先序遍历的结果为ABDEFC,中序遍历的结果为DBFEAC,则后序遍历的结果是()。 A.DBFEAC B.DFEBCA C.BDFECA D.BDEFAC 【参考答案】:B 10.以下有关广义表的表述中,正确的是()。 A.由0个或多个原子或子表构成的有限序列 B.至少有一个元素是子表 C. 不能递归定义 D.不能为空表 【参考答案】:A 11.以下说法正确的是()。 A.数据项是数据的基本单位 B.数据元素是数据的最小单位 C.数据结构是带结构

西安电子科技大学数据结构期末复习题

西安电子科技大学数据结构期末复习题 《数据结构》复习题 (含部分参考答案版) 一、单项选择题 1. 按照数据逻辑结构的不一致,能够将数据结构分成 C 。 A. 动态结构与静态结构 B. 紧凑结构与非紧凑结构 C. 线性结构与非线性结构 D. 内部结构与外部结构 2. 下列关于数据结构的叙述中正确的是 A 。 A. 数组是同类型值的集合 B. 递归算法的程序结构比迭代算法的程序结构更为复杂 C. 树是一种线性的数据结构 D. 用一维数组存储二叉树,总是以先序顺序遍历各结点 3. 在计算机的存储器中表示时,物理地址与逻辑地址相同同时是连续的,称之为B A.逻辑结构 B.顺序存储结构 C.链式存储结构 D.以上都不对 4. 下列关于算法特性的描述中, B 是正确的。 (1)算法至少有一个输入与一个输出 (2)算法至少有一个输出但是能够没有输入 (3)算法能够永远运行下去 A. (1) B. (2) C. (3) D. (2)与(3) 5. 对顺序存储的线性表(a1,a2,…,a n)进行插入操作的时间复杂度是 C 。 A.O(n) B. O(n-i) C. (n/2) D. O(n-1) 6. 链表不具有的特点是A 。 A.可随机访问任一元素 B.插入与删除时不需要移动元素 C.不必事先估计存储空间 D.所需空间与线性表的长度成正比 7.线性链表中各链结点之间的地址 C 。 A.务必连续 B.部分地址务必连续

C.不一定连续 D.连续与否无关 8. 下列关于链式存储结构的叙述中, C 是不正确的。 A.结点除自身信息外还包含指针域,因此存储密度小于顺序存储结构 B.逻辑上相邻的结点物理上不必邻接 C.能够通过计算直接确定第i个结点的存储地址 D.插入、删除操作方便,不必移动结点 9. 设依次进入一个栈的元素序列为d, a, c, b,得不到出栈的元素序列为D 。 A. dcba B. acdb C. abcd D. cbda 10. 将新元素插入到链式队列中时,新元素只能插入到 B 。 A. 链头 B. 链尾 C. 链中 D. 第i个位置,i大于等于1,大于等于表长加1 11. 设栈S与队列Q的初始状态为空,元素e1、e2、e3、e4、e5与e6依次通过栈S,一 个元素出栈后即进入队列Q,若6个元素出队的顺序是e2、e4、e3、e6、e5、与e1,则栈S容量至少应该是 C 。 A. 6 B. 4 C. 3 D. 2 12.下面 D 是‘abcd321ABCD’的子串。 A. abcd B. 321ab C. ‘abc ABC’ D. ‘21AB’ 13.假设8行10列的二维数组A[1…8,1…10]分别以行序为主序与以列序为主序顺序存 储时,其首地址相同,那么以行序为主序时元素a[3,5]的地址与以列序为主序时 C 元素相同。 A. a[7,3] B. a[8,3] C. a[1,4] D. ABC都不对 14. 数组A[0…5,0…6]的每个元素占5个字节,将其按列优先次序存储在起始地址为1000 的内存单元中,则元素A[5,5]的地址为 A 。 A. 1175 B. 1180 C. 1205 D.1210 15.下列广义表中,长度为3的广义表为 B 。 A.(a,b,c,( )) B. ((g),(a,b,c,d,f),( )) C. (a,(b,(d))) D. ((( ))) 16. 下列关于广义表的叙述中,正确的是 A 。 A. 广义表是0个或者多个单元素或者子表构成的有限序列 B. 广义表至少有一个元素是子表

电子科技大学22春“计算机应用技术”《数据结构》期末考试高频考点版(带答案)试卷号2

电子科技大学22春“计算机应用技术”《数据结构》期末考试高频考点版 (带答案) 一.综合考核(共50题) 1. 若一个算法中的语句频度之和为T(n)=3720n+4nlogn,则算法的时间复杂度为 O(n)。() A.正确 B.错误 参考答案:B 2. 假设以S和X分别表示进栈和退栈操作,则对输入序列a,b,c,d,e进行一系列栈操作SSXSXSSXXX 之后,得到的输出序列为 a b b c c d d e d c 。() A.正确 B.错误 参考答案:B 3. 下面的程序段的时间复杂度是多少?() A.O(n) B.O(m+n+1) C.O(m+n) D.O(m*n) 参考答案:D 4. 在线性表的下列运算中,不改变数据元素之间结构关系的运算是()。 A、插入 B、删除 C、排序 D、定位

5. 从顺序表中删除一个元素时,表中所有在被删元素之后的元素均需()。 A、前移一个位置 B、后移一个位置 C、不动 D、视情况而定 参考答案:A 6. 算法有以下几种特性()。 A、有穷性 B、确定性 C、可行性 D、输入和输出 参考答案:ABCD 7. 在目标串T[0...n-1]=″xwxxyxy″中,对模式串P[0...m-1]=″xy″进行子串定位操作的结果是()。 A、0 B、2 C、3 D、5 参考答案:C 8. 一个含有n个结点的完全二叉树,它的高度是「log2n」+1。() T、对 F、错 参考答案:T

A.正确 B.错误 参考答案:B 10. 已知在一棵度为3的树中,度为2的结点数为4,度为3的结点数为3,则该树中的叶子结点数为()。 A、5 B、8 C、11 D、18 参考答案:C 11. 假设按照12345的进栈顺序,下面哪些是可能的出栈顺序()。 A、12345 B、54321 C、43215 D、14325 参考答案:ABCD 12. 在文本编辑程序中查找某一特定单词在文本中出现的位置,可以利用串的定位操作。() A、错误 B、正确 参考答案:B 13. 若线性表的插入和删除操作频繁地在表头或表尾位置进行,则更适宜采用的存储结构为()。 A、无头结点的双向链表 B、带尾指针的循环链表 C、无头结点的单链表 D、带头指针的循环链表

电子科技大学网络教育-数据结构(专科)试题及答案(7)

电子科技大学网络教育-数据结构(专科)试题及答案(7) 一、单选,共30题/每题2.5分/共75.0分: 1、算法分析的两个主要方面是()。 A、正确性和简单性 B、数据复杂性和程序复杂性 C、可读性和文档性 D、空间复杂度和时间复杂度 得分:2.5 2、算法原则上都是能够由机器或人完成的。整个算法好像是一个解决问题的“工作序列”,其中的每一步都是我们力所能及的一个动作。这是算法的()。 A、正确性 B、可行性 C、确定性 D、有穷性 得分:2.5 3、计算机中的算法指的是解决某一个问题的有限运算序列,它必须具备输入、输出、()等5个特性。 A、可执行性、可移植性和可扩充性 B、确定性、有穷性和稳定性 C、易读性、稳定性和确定性 D、可执行性、有穷性和确定性 得分:2.5 4、无向图顶点v的度为关联于该顶点()的数目. A、顶点 B、序号 X、边 ∆、下标

得分:2.5 5、将递归算法转换成对应的非递归算法时,通常需要使用下列哪种数据结构来保存中间结果()。 A、树 B、队列 X、链表 ∆、栈 得分:2.5 6、某二叉树的中序序列为ABCDEFG,后序序列为BDCAFGE,则其左子树中结点数目为()。 A、3 B、5 X、2 ∆、4 得分:2.5 7、已知一个有向图的邻接矩阵表示,要删除所有从第i个结点发出的边,应()。 A、将邻接矩阵的第ι行删除 B、将邻接矩阵的第ι列元素全部置为0 X、将邻接矩阵的第ι列删除 ∆、将邻接矩阵的第ι行元素全部置为0 得分:2.5 8、带头结点的单链表head为空的判定条件是()。 A、ηεαδ!=NYΛΛ B、ηεαδ->νεξτ!=NYΛΛ X、ηεαδ->νεξτ==NYΛΛ ∆、ηεαδ==NYΛΛ 得分:0.0 9、生成树的构造方法有()。

《数据结构》期末考试复习题 第1章 绪论

第1章绪论 一、选择题 1。算法的计算量的大小称为计算的()。【北京邮电大学2000 二、3 (20/8分)】A.效率 B. 复杂性 C。现实性 D。难度 2. 算法的时间复杂度取决于()【中科院计算所 1998 二、1 (2分)】 A.问题的规模 B。待处理数据的初态 C。 A和B 3.计算机算法指的是(1),它必须具备(2) 这三个特性。 (1) A.计算方法 B。排序方法 C。解决问题的步骤序列 D。调度方法 (2) A.可执行性、可移植性、可扩充性 B. 可执行性、确定性、有穷性 C. 确定性、有穷性、稳定性 D. 易读性、稳定性、安全性 【南京理工大学 1999 一、1(2分)【武汉交通科技大学 1996 一、1( 4分)】4.一个算法应该是( )。【中山大学 1998 二、1(2分)】 A.程序 B.问题求解步骤的描述 C.要满足五个基本特性 D.A和C. 5. 下面关于算法说法错误的是()【南京理工大学 2000 一、1(1。5分)】 A.算法最终必须由计算机程序实现 B.为解决某问题的算法同为该问题编写的程序含义是相同的 C。算法的可行性是指指令不能有二义性 D。以上几个都是错误的 6. 下面说法错误的是()【南京理工大学 2000 一、2 (1.5分)】 (1)算法原地工作的含义是指不需要任何额外的辅助空间 (2)在相同的规模n下,复杂度O(n)的算法在时间上总是优于复杂度O(2n)的算法(3)所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界 (4)同一个算法,实现语言的级别越高,执行效率就越低 A.(1) B。(1),(2) C。(1),(4) D。(3) 7.从逻辑上可以把数据结构分为()两大类。【武汉交通科技大学 1996 一、4(2分)】A.动态结构、静态结构 B.顺序结构、链式结构 C.线性结构、非线性结构 D.初等结构、构造型结构 8.以下与数据的存储结构无关的术语是()。【北方交通大学 2000 二、1(2分)】A.循环队列 B. 链表 C. 哈希表 D. 栈 9.以下数据结构中,哪一个是线性结构( )?【北方交通大学 2001 一、1(2分)】A.广义表 B. 二叉树 C。稀疏矩阵D。串 10.以下那一个术语与数据的存储结构无关?()【北方交通大学 2001 一、2(2分)】A.栈 B. 哈希表 C. 线索树 D。双向链表 11.在下面的程序段中,对x的赋值语句的频度为()【北京工商大学 2001 一、10(3分)】 FOR i:=1 TO n DO FOR j:=1 TO n DO x:=x+1; A. O(2n) B.O(n) C.O(n2) D.O(log2n) 12.程序段 FOR i:=n-1 DOWNTO 1 DO FOR j:=1 TO i DO IF A[j]〉A[j+1] THEN A[j]与A[j+1]对换;

《数据结构》期末复习题-答案

《数据结构》期末复习题-答案

1.以下与数据的存储结构无关的术语是( c ) C、哈希表 2.一个向量第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是( B ) B、108 3.假设带头结点的单向循环链表的头指针为head,则该链表为空的判定条件是( C ) C、head–>next= =head 4.若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,则不可能出现的出栈序列是( D ) D、2,3,5,1,6,4 5.下列关键字序列中,构成小根堆的是( A ) A、{12,21,49,33,81,56,69,41} 6.下列数据结构中,不属于二叉树的是( A ) A、B树 7.用顺序存储的方法来存储一棵二叉树,存放在一维数组A[1..N]中,若结点A[i]有右孩子,则其右孩子是( C )。 C、A[2i+1] 8.设树T的高度为4,其中度为1、2、3、4的结点个数分别为4、2、1、1,则T中叶子数为( D ) D、 8 9.有数据{53,30,37,12,45,24,96},从空二叉树开始逐个插入数据来形成二叉排序树,若希望高度最小,则应选择 下面哪个序列输入( B ) B、37,24,12,30,53,45,96 10.对下面有向图给出了四种可能的拓扑序列,其中错误的是( C ) C、5,1,6,3,4,2 11.m阶B-树中所有非终端(除根之外)结点中的关键字个数必须大于或等于( B ) B、[m/2]-1 12.散列文件也称为( C ) B 、索引文件 13.数据结构是( D ) D、相互之间存在一种或多种特定关系的数据元素的集合 14.从逻辑关系来看,数据元素的直接前驱为0个或1个的数据结构只能是( C ) C、线性结构和树型结构 15.设p为指向双向循环链表中某个结点的指针,p所指向的结点的两个链域分别用p→llink和p→rlink表示,则同样表示

相关文档
最新文档