数据结构暨南大学期末试卷试题

数据结构暨南大学期末试卷试题

一、判断题(共10分)

1. 当静态链表采用数组实现时,插入与删除操作仍需移动元素。

2. 栈也是一种线性表,也同样有顺序存储结构和链式存储结构。

3. 二叉树的三种遍历算法区别仅在于对树根、左右子树访问先后顺序的不同。

4. 邻接表是图的一种顺序存储结构。

5. 二叉树就是度数为2的树。

6. 在哈希表中勿需比较就可找到记录在表中的位置。

7. 线性表的链式存储结构既方便其存取操作,也方便其插入与删除操作。

8. 顺序存储结构既适合于完全二叉树,也同样适合于一般的二叉树。

9.一个算法是正确的、高效率的,还不能说它就是一个“好”的算法。

10. 快速排序与堆排序的平均时间复杂度相同。

二、概念填空(共20分,每题2分)

1.对顺序存储结构的线性表,设表长为La;在各元素插入为等概率条件下,插入一个数据元素需平均移动表中元素_______ 个;在最坏情况下需移动表中元素_______ 个。

2.从逻辑角度看,四种基本的数据结构可分为__________、___________、____________和____________;两种存储结构为_____________和_________________。

3.一个深度为H的满k(k>2)叉树,其第i层(若存在)有________个结点;编号为p(p>1)的结点其父结点(父结点为非根结点)编号是___________________。

4.具有n个结点的完全二叉树的深度为____________;编号为p

5.堆栈被称为一个_____________的线性表;队列被称为一个_____________的线性表。

6.静态查找表的查找方法主要有:有序表查找及________________________;在n个记录中进行折半查找,当查找不成功时,与关键字比较次数最多为_____________________。

7.一颗9阶的B_ 树,其每个结点(除根外)的子树数目为________________,关健字数目为________________。

8.内部排序方法大致可分为__________、___________、____________、__________和_________等五类;简单排序方法的时间复杂度为_________。

9.外部排序分为两个相对独立的阶段。首先产生有序子文件即___________;然后对它们进行__________,直至整个文件有序为止。

10.文件的组织方式有_________________等三种;顺序文件又可分为_________________两大类。

三、算法(共70分)

要求:对1、2、3题,在它们的下划线处填空;对4、5、6、7题,从第7题以下的空白纸张处开始书写,标明题号且只写出最终结果即可。

1. 算法填空题(12分)

Int Search_Bin(SST able ST, KeyType key) {

在有序表ST中折半查找其关键字等于key的数据元素。若找到,则函数值为该元素在表中的位置,否则为0。

Low =1; high=ST.length;

While (__________________){

mid=___________

____________;

if EQ(key, ST.elem[mid].key) return mid;

else if LT( key, ST.elem[mid].key) high=______________;

else low=______________;

}

return 0;

}

2. 算法填空题(9分)

中序遍历二叉树T的递归算法,对数据元素操作调用函数printf()。

struct TNode{

char data;

struct TNode * lchild, * rchild;

}

InOrderTraverse(struct TNode *T){

if (T){

InOrderTraverse(______________);

printf("%c",______________);

InOrderTraverse(______________);

}

}

3. 算法填空(9分)

typedef struct{

char *base;

char *top;

int stacksize;

}SqStack;

void Pop(SqStack *S0, char *e){

//若栈不空,则删除栈顶元素,用e返回其值。

if(S0->top= =_____________) return;

______________;

*e=*(________________);

}

4. 给出一整数序列(4,2,5,6,3),对其进行从小到大排序,分别选用直接插入排序、2—路归并排序及快速排序三种方法,写出这

三种方法的一趟排序结果。(10分)

5. 已知一颗3阶的B-树(见下图),依次插入关键字3及90,分别写出每插入一个关键字后所生成的B-树? (10分)。

6. 已知一无向带权图(见下图),写出其最小生成树(10分)。

7. 已知4个结点的权值为{20,30,32,40,78},构造一颗赫夫曼树,并写出其赫夫曼编码(10分)。

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

《数据结构》期末考试试题及答案 一、单项选择题 1. 数据结构是计算机科学的基础学科之一。下列哪个选项正确描述了数据结构的定义? A. 数据结构是一种计算机程序 B. 数据结构是一种存储和组织数据的方法 C. 数据结构是一种人工智能技术 D. 数据结构是一种操作系统 答案:B 2. 链表和数组是常见的数据结构,它们之间的主要区别是: A. 数组可以存储不同类型的数据,而链表只能存储相同类型的数据 B. 数组的元素在内存中是连续存储的,而链表的元素在内存中是分散存储的 C. 链表可以随机访问元素,而数组只能顺序访问元素 D. 链表的插入和删除操作更高效,而数组的访问操作更高效 答案:B 3. 在二叉树中,每个节点最多可以有多少个子节点? A. 1

B. 2 C. 3 D. 无限多个 答案:B 二、填空题 1. 假设有一组数据 [5, 8, 3, 2, 9],按照从小到大的顺序进行冒泡排 序的过程中,经过三次交换后的结果是__2__,__3__,__5__,__8__,__9__。 2. 请完成以下代码,实现栈的入栈和出栈操作: ```python class Stack: def __init__(self): self.stack = [] def push(self, item): self.stack.append(item) def pop(self): if not self.is_empty(): return self.stack.pop() def is_empty(self):

# 示例代码 s = Stack() s.push(1) s.push(2) s.push(3) print(s.pop()) # 输出 3 print(s.pop()) # 输出 2 print(s.is_empty()) # 输出 False ``` 答案: ```python class Stack: def __init__(self): self.stack = [] def push(self, item): self.stack.append(item) def pop(self): if not self.is_empty():

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

数据结构期末考试试题及答案 一、选择题 1. 评价一个算法时间性能的主要标准是( )。 A、算法易于调试 B、算法易于理解 C、算法的稳定性和正确性 D、算法的时间复杂度 2. 计算机算法具备有输入、输出、()等五个特性。 A、可行性、可移植性和可扩充性 B、可行性、确定性和有穷性 C、确定性、有穷性和稳定性 D、易读性、稳定性和安全性 3. 带头结点的单链表head为空的判定条件是()。 A、head==NULL B、head->next==NULL C、head->next==head D、head!=NULL 4. 以下关于线性表的说法不正确的是( )。 A、线性表中的数据元素可以是数字、字符、记录等不同类型。 B、线性表中包含的数据元素个数不是任意的。 C、线性表中的每个结点都有且只有一个直接前趋和直接后继。 D、存在这样的线性表:表中各结点都没有直接前趋和直接后继。 5. 在顺序表中,只要知道( ),就可在相同时间内求出任一结点的存储地址。 A、基地址 B、结点大小 C、向量大小 D、基地址和结点大小 6. ( )运算中,使用顺序表比链表好。 A、插入 B、删除 C、根据序号查找 D、根据元素值查找 7. 一个长度为n的顺序表中,向第i个元素之前插入一个新元素时,需要向后移动()个元素 A、n-i B、n-i+1 C、n-i-1

D、i 8. ( )适合作为经常在首尾两端操作线性表的存储结构。 A、顺序表 B、单链表 C、循环链表 D、双向链表 9. 栈和队列的共同点是() A、都是先进后出 B、都是先进先出 C、只允许在端点处插入和删除元素 D、没有共同点 10. 一个队列的入列序列是1 2 3 4,则队列的输出序列是( )。 A、4 3 2 1 B、1 2 3 4 C、1 4 3 2 D、3 2 4 1 11. 队列与一般的线性表的区别在于( )。 A、数据元素的类型不同 B、运算是否受限制 C、数据元素的个数不同 D、逻辑结构不同 12. “假上溢”现象会出现在( )中。 A、循环队列 B、队列 C、链队列 D、顺序队列

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

试卷 A 1、顺序表中所有结点的类型必须相同。() 2、链接表中所有灵活利用存储空间,所以链表都是紧凑结构。 ( ) 3、用Ch1,Ch2表示两个字符,若Ord(Ch1)<Ord(Ch2),则称Ch1<Ch2 4、Shell排序方法是不稳定的。() 5、只允许最下面的二层结点的度数小于2的二叉树是完全二叉树( ) 6、若检索所有结点的概率相等,则内部路径长度大的二叉树其检索效 率高。() 7、n个结点的有向图,若它有n(n-1)条边,则它一定是强连通的。 8、广义表中,若限制表中成分的共享和递归所得到的结构是树结构) 9、多维数组元素之间的关系是线性的。() 10、任何无环的有向图,其结点都可以排在一个拓扑序列里。 ( ) 11、数据的逻辑结构可形式地用一个二元组B=(K,R)来表示,其中K 是__________,R是_____________。 12、广义表(a,(a,b),d,e,((i,j),k))的长度是。 13、一个串,除自身之外的所有子串都是该串的。 14、树形选择排序总的时间开销为。 15、按先根次序法周游树林正好等同于按周游对应的二叉 树。 16、外部路径长度E定义为从扩充二叉树的到每个 的路径长度之和。 17、在图结构中,如果一个从V p到V q的路径上除V p和V q可以相同外, 其它结点都不相同,则称此路径为一称为回路。 18、栈是一种表。 19.带权的又称为网络。 20、n×n的三对角矩阵按“行优先顺序”存储其三对角元素,已和a11 的存储地址为LOC(a11),矩阵的每个元素占一个存储单元,则a ij(i=1, j=1,2或1<i<n,j=i-1,i,i+1或i=n,j=n-1,n)的存储地 址为LOC(a ij)=。

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

2011-2012学年第一学期期末考查 《数据结构》试卷 (答案一律写在答题纸上,在本试卷上做答无效) 一、选择(每题1分,共10分) 1.长度为n的线性表采用顺序存储结构,一个在其第i个位置插入新元素的算法时间复杂度为(D) A.O(0) B.O(1) C.O(n) D.O(n2) 2.六个元素按照6,5,4,3,2,1的顺序入栈,下列哪一个是合法的出栈序列?(D) A.543612 B.453126 C.346512 D.234156 3.设树的度为4,其中度为1、2、3、4的结点个数分别是4、2、1、2,则树中叶子个数为(B ) A.8 B.9 C.10 D.11 4.设森林F对应的二叉树B有m个结点,B的右子树结点个数为n,森林F中第一棵树的结点个数是( B ) A. m-n B.m-n-1 C.n+1 D.m+n 5.若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是(B) A.9 B.11 C.15 D.不确定 6.下列哪一个方法可以判断出一个有向图是否有环。(A) A.深度优先遍历 B.拓扑排序 C.求最短路径 D.求关键路径 7.第7层有10个叶子结点的完全二叉树不可能有(B )个结点。 A.73 B.234 C.235 D.236 8.分别用以下序列构造二叉排序树,与用其他三个序列构造的结果不同的是(B) A.(100,80,90,60,120,110,130) B.(100, 120, 110,130,80, 60,90) C.(100,60,80,90,120,110,130) D.(100,80, 60,90, 120, 130,110) 9.对一组数据(84,47,25,15,21)排序,数据的排列次序在排序过程中变化如下:(1)84 47 25 15 21 (2)15 47 25 84 21 (3)15 21 25 84 47(4)15 21 25 47 84则采用的排序方法是(B ) A.选择排序 B.起泡排序 C.快速排序 D.插入排序 10.对线性表进行折半查找时,要求线性表必须(D) A.以顺序方式存储 B.以顺序方式存储,且数据元素有序

数据结构期末考试试题

数据结构期末考试试题 1.()是性质相同的数据元素的集合,是数据的子集。 A.数据元素 B.数据对象(正确答案) C.数据结构 D.数据项 2.把数据存储到计算机中,并具体体现数据元素间的逻辑结构称为()。A.物理结构(正确答案) B.逻辑结构 C.算法的具体实现 D.给相关变量分配存储单元 3.从n个数中选取最大元素()。 A.基本操作是数据元素间的交换 B.算法的时间复杂度是O(n2) C.算法的时间复杂度是O(n)(正确答案) D.需要进行(n+1)次数据元素间的比较 4.数据的()结构与所使用的计算机无关。 A.逻辑(正确答案) B.物理 C.存储 D.逻辑与存储 5.数据的物理结构()。 A.与数据的逻辑结构无关 B.仅仅包括数据元素的表示 C.只包括数据元素间关系的表示 D.包括数据元素的表示和关系的表示(正确答案) 6.数据结构中,与所使用的计算机无关的是数据的()结构。 A.物理 B.存储

C.逻辑与物理 D.逻辑(正确答案) 7.数据元素是数据的基本单位,它()。 A.只能有一个数据项组成 B.至少有二个数据项组成 C.可以是一个数据项也可以由若干个数据项组成(正确答案) D.至少有一个数据项为指针类型 8.算法的时间复杂度与()有关。 A.所使用的计算机 B.计算机的操作系统 C.算法本身(正确答案) D.数据结构 9.同一种逻辑结构()。 A.只能有唯一的存储结构 B.可以有不同的存储结构(正确答案) C.只能表示某一种数据元素之间的关系 D.以上三种说法均不正确 10.线性结构中数据元素的位置之间存在()的关系。 A.一对一(正确答案) B.一对多 C.多对多 D.每一个元素都有一个直接前驱和一个直接后继 11.树形结构中数据元素的位置之间存在()的关系。 A.一对一 B.一对多(正确答案) C.多对多 D.每一个元素都有一个直接前驱和一个直接后继 12.图形结构中数据元素的位置之间存在()的关系。 A.一对一 B.一对多 C.多对多(正确答案)

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

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

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

数据结构期末考试试题

数据结构期末考试试题 一、选择题 1. 数据结构是关于什么的学科? a) 算法设计与分析 b) 数据的组织、存储与管理 c) 编程语言的使用 d) 硬件系统的设计与实现 2. 下列哪个数据结构是后进先出(LIFO)的? a) 队列 b) 栈 c) 链表 d) 树 3. 常用的查找算法中,下列哪个算法的时间复杂度最低? a) 二分查找 b) 线性查找 c) 哈希查找 d) 顺序查找

4. 以下哪个数据结构可以实现先进先出(FIFO)的访问方式? a) 栈 b) 队列 c) 链表 d) 树 5. 在二叉树中,每个节点最多有多少个子节点? a) 0 b) 1 c) 2 d) 3 二、填空题 1. 在堆排序中,使用______数据结构来实现最小堆或最大堆。 2. 图中顶点的度是指与该顶点______相连的边的个数。 3. 哈希表中用于处理冲突的方法有开放地址法和______法。 4. 在图的深度优先搜索算法中,使用______来记录已经访问过的顶点。 5. 二叉搜索树中,中序遍历的结果是______有序的序列。 三、简答题

1. 请简要说明线性表和链表的区别。 2. 请解释下列术语: a) 栈 b) 队列 c) 图 d) 树 3. 请简述哈希表的原理以及它的应用场景。 四、编程题 请用C语言实现一个栈结构,并实现入栈(push)、出栈(pop)和判断栈是否为空(isEmpty)的操作。 结束语 通过这次考试,我们对数据结构的基本概念、常用算法和数据结构的应用有了更深入的了解。希望大家在复习的过程中能够掌握其中的关键点,并能够在实际问题中灵活运用。祝各位取得好成绩!

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

数据结构期末考试试题(含答案)数据结构期末考试试题(含答案) 第一题:多项式相加(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);

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

数据结构期末考试真题及答案 期末样卷参考答案 一.是非题〔每题1分共10分〕 1. 线性表的链式存储结构优于顺序存储结构。F 2. 栈和队列也是线性表。如果需要,可对它们中的任一元素进行操作。F 3.字符串是数据对象特定的线性表。T 4.在单链表P指针所指结点之后插入S结点的操作是:P->next= S ; S-> next = P->next; F 5.一个无向图的连通重量是其极大的连通子图。T 6.邻接表可以表示有向图,也可以表示无向图。T 7.假设B是一棵树,B′是对应的二叉树。则B的后根遍历相当于B′的中序遍历。T 8.通常,二叉树的第i层上有2i-1个结点。F 9.对于一棵m阶的B-树,树中每个结点至多有m 个关键字。除根之外的全部非终端结点至少有ém/2ù个关键字。F 10.对于任何待排序序列来说,快速排序均快于起泡排序。F 二.选择题〔每题2分共28分〕 1.在以下排序方法中,〔c 〕方法平均时间复杂度为0(nlogn),最坏情况下时间复杂度为0(n2);〔d 〕方法全部情况下时间复杂度均为0(nlogn)。 a. 插入排序 b. 希尔排序 c. 快速排序 d. 堆排序 2. 在有n个结点的二叉树的二叉链表表示中,空指针数为〔 b 〕。 a.不定 b.n+1 c.n d.n-1 3. 以下二叉树中,〔a 〕可用于完成符号不等长高效编码。 a.最优二叉树 b.次优查找树 c.二叉平衡树 d.二叉排序树 4. 以下查找方法中,〔a 〕适用于查找有序单链表。 a.顺序查找 b.二分查找 c.分块查找 d.哈希查找 5. 在顺序表查找中,为防止查找过程中每一步都检测整个表是否查找完毕,可采纳〔 a 〕方法。 a.设置监视哨 b.链表存贮 c.二分查找 d.快速查找 6. 在以下数据结构中,〔c 〕具有先进先出特性,〔b 〕具有先进后出特性。 a.线性表b.栈c.队列d.广义表 7.具有m个结点的二叉排序树,其最大深度为〔f 〕,最小深度为〔 b 〕。a. log 2 m b. └log2 m ┘+1 c. m/2 d .┌m/2 ┐-1 e. ┌m/2 ┐ f. m 8.已知一组待排序的记录关键字初始排列如下:56,34,58,26,79,52,64,37,28,84,57。 以下选择中〔 c 〕是快速排序一趟排序的结果。 〔 b 〕是希尔排序〔初始步长为4〕一趟排序的结果。〔 d 〕是基数排序一趟排序的结果。 〔 a 〕是初始堆〔大堆顶〕。 a. 84,79,64,37,57,52,58,26,28,34,56。 b. 28,34,57,26,56,52,58,37,79,84,64。 c. 28,34,37,26,52,56,64,79,58,84,57。 d. 52,34,64,84,56,26,37,57,58,28,79。 e. 34,56,26,58,52,64,37,28,79,57,84。 f. 34,56,26,58,52,79,37,64,28,84,57。三.填空题〔每题2分共20分〕 1.有向图的存储结构有〔邻接矩阵〕、〔邻接表〕、〔十字链表〕等方法。 2.已知某二叉树的先序遍历次序为afbcdeg,中序遍历次序为cedbgfa。 其后序遍历次序为〔edcgbfa〕。层次遍历次序为〔afbcgde〕。 3.设有二维数组A 5 x 7 ,每一元素用相邻的4个字节存储,存储器按字节编址。已知A00的存储地址为100。则按行存储时,元素A14的第—个字节的地址是〔144〕;按列存储时,元素A14的第—个字节的地址是〔184〕。 4.请在下划线上填入适当的语句,完成以下法算。Status Preordertraverse(Bitree T,Status(xVisit)(Telemtype e)){ //先序非递归遍历二叉树。 Initstack ( S ); Push ( S,T ); While ( !stackempty( S ) ) { While ( gettop( S, p )&p ) { visit (p->data ) ; push(S, p->lchild ;} Pop ( S , p ); If ( !stackempty(s) ) { pop(S, p) ; push( S, p->rchild ); } } return ok; 四.简答题〔每题5分共25分〕 1.将图示森林转换为二叉树,并对该二叉树中序全序线索化。 2.已知Hash函数为H〔K〕=K mod 13 ,散列地址为0 --14, 用二次探测再散列处理冲突,给出关键字〔23,34,56,24,75,12,49, 52,36,92,06,55〕在散列 地址的分布。

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

数据结构期末考试复习试题(整理完的) 数据结构与算法》复题 一、选择题 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。

2020-2021学年数据结构期末考试试题含答案

2020-2021学年数据结构期末考试试题一、单项选择题(每小题2分,共20分) 1.数据的运算a 。 A.效率与采用何种存储结构有关 B.是根据存储结构来定义的 C.有算术运算和关系运算两大类 D.必须用程序设计语言来描述答:A。 2. 链表不具备的特点是 a 。 A.可随机访问任一结点 B.插入删除不需要移动元素 C.不必事先估计存储空间 D.所需空间与其长度成正比 答:参见本节要点3。本题答案为:A。 3. 在顺序表中删除一个元素的时间复杂度为 c 。 A.O(1) B.O(log2n) C.O(n) D.O(n2) 答:C。 4.以下线性表的存储结构中具有随机存取功能的是 d 。 A. 不带头结点的单链表 B. 带头结点的单链表 C. 循环双链表 D. 顺序表 解 D。 5. 一个栈的进栈序列是a,b,c,d,e,则栈的不可能的输出序列是 c 。 A.edcba B.decba C.dceab D.abcde 答:C。

6. 循环队列qu的队空条件是 d 。 A. (qu.rear+1)%MaxSize==(qu.front+1)%MaxSize B. (qu.rear+1)%MaxSize==qu.front+1 C.(qu.rear+1)%MaxSize==qu.front D.qu.rear==qu.front 答:D。 7. 两个串相等必有串长度相等且 b 。 A.串的各位置字符任意 B.串中各位置字符均对应相等 C.两个串含有相同的字符 D.两个所含字符任意 答:B。 8. 用直接插入排序对下面四个序列进行递增排序,元素比较次数最少的是c 。 A.94,32,40,90,80,46,21,69 B.32,40,21,46,69,94,90, 80 C.21,32,46,40,80,69,90,94 D.90,69,80,46,21,32,94, 40 答:C。 9. 以下序列不是堆(大根或小根)的是 d 。 A.{100,85,98,77,80,60,82,40,20,10,66} B.{100,98,85,82,80, 77,66,60,40,20,10} C.{10,20,40,60,66,77,80,82,85,98,100} D.{100,85,40,77,80, 60,66,98,82,10,20} 答:D。 10. 以下排序方法中,b ,在初始序列已基本有序的情况下,排序效率最高。 A.直接选择排序 B.昌泡排序

《数据结构》期末考试试卷(含答案)

一、选择题(每小题2分,共24分) 1.计算机识别、存储和加工处理的对象被统称为( A ) A.数据 B.数据元素 C.数据结构 D.数据类型 2.栈和队列都是(A) A.限制存取位置的线性结构B.顺序存储的线性结构 C.链式存储的线性结构D.限制存取位置的非线性结构 3.链栈与顺序栈相比,比较明显的优点是( D ) A.插入操作更加方便 B.删除操作更加方便 C.不会出现下溢的情况 D.不会出现上溢的情况 4.采用两类不同存储结构的字符串可分别简称为( B ) A.主串和子串 B.顺序串和链串 C.目标串和模式串 D.变量串和常量串 5.一个向量第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是:B A. 110 B .108 C. 100 D. 120 6.串是一种特殊的线性表,其特殊性体现在:B A.可以顺序存储 B .数据元素是一个字符 C. 可以链接存储 D. 数据元素可以是多个字符 7.设高度为h的二叉树上只有度为0和度为2的结点,则此类二叉树中所包含的结点数至少为:C A. 2h B .2h-1 C. 2h+1 D. h+1 软件开发网https://www.360docs.net/doc/2519386838.html, 8.树的基本遍历策略可分为先根遍历和后根遍历;二叉树的基本遍历策略可分为先序遍历、中序遍历和后序遍历。这里,我们把由树转化得到的二叉树叫做这棵树对应的二叉树。下列结论哪个正确? A A. 树的先根遍历序列与其对应的二叉树的先序遍历序列相同 B .树的后根遍历序列与其对应的二叉树的后序遍历序列相同 C. 树的先根遍历序列与其对应的二叉树的中序遍历序列相同 D. 以上都不对 9.一个有n个顶点的无向图最多有多少边?C A. n B .n(n-1) C. n(n-1)/2 D. 2n 10.在一个图中,所有顶点的度数之和等于所有边数的多少倍?C A. 1/2 B .1 C. 2 D. 4 11.当在二叉排序树中插入一个新结点时,若树中不存在与待插入结点的关键字相同的结点,且新结点的关键字小于根结点的关键字,则新结点将成为(A) A.左子树的叶子结点B.左子树的分支结点 C.右子树的叶子结点D.右子树的分支结点 软件开发网https://www.360docs.net/doc/2519386838.html, 12.对于哈希函数H(key)=key%13,被称为同义词的关键字是( D ) A.35和41 B.23和39 C.15和44 D.25和51 二、已知某棵二叉树的前序遍历结果为A,B,D,E,G,C,F,H,I,J,其中中序遍历的结果为D,B,G,E,A,H,F,I,J,C。请画出二叉的具体结构。(注意要写出具体步骤)(10分) 原理见课本128页 三、有图如下,请写出从顶点c0出发的深度优先及宽度优先遍历的结果。(10分) 深度优先;C0-C1-C3-C4-C5-C2 宽度优先:C0-C1-C2-C3-C4-C5 四、有图如下,按Kruskal算法求出其最小生成树。要求写出完整的步骤。(10分) 原理见课本250页 五、给定线性表(12,23,45,66,76,88,93,103,166),试写出在其上进行二分查找关键字值12,

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

数据结构期末考试题及答案 一、选择题(每题2分,共10题) 1. 数据结构是指() A. 存储和组织数据的方式 B. 对数据进行计算和处理的方法 C. 数据的物理表示形式 D. 数据的逻辑结构 答案:A. 存储和组织数据的方式 2. 在数据结构中,栈是一种() A. 先进先出的数据结构 B. 后进先出的数据结构 C. 随机存取的数据结构 D. 按键值查找的数据结构 答案:B. 后进先出的数据结构 3. 下列哪种数据结构不支持随机访问?() A. 队列 B. 栈

C. 数组 D. 链表 答案:D. 链表 4. 在二叉树中,每个节点最多可以有几个子节点?() A. 0 B. 1 C. 2 D. 无限多 答案:C. 2 5. 在图的表示方法中,邻接矩阵适用于() A. 稠密图 B. 稀疏图 C. 有向图 D. 无向图 答案:A. 稠密图 6. 下列排序算法中,最坏情况时间复杂度为O(nlogn)的是() A. 冒泡排序 B. 插入排序

C. 快速排序 D. 选择排序 答案:C. 快速排序 7. 广度优先搜索算法用于() A. 求最短路径 B. 求全排列 C. 求最小生成树 D. 求图的连通分量 答案:A. 求最短路径 8. 哈希表的查找时间复杂度为() A. O(1) B. O(n) C. O(logn) D. O(n^2) 答案:A. O(1) 9. AVL树是一种() A. 无序树 B. 有序树

C. 平衡树 D. 非平衡树 答案:C. 平衡树 10. 以下哪个不属于基本的查找算法?() A. 二分查找 B. 插值查找 C. 散列查找 D. 顺序查找 答案:C. 散列查找 二、填空题(每题4分,共4题) 11. 下列不是线性表的是() 答案:二叉树 12. 在冒泡排序中,每一轮的比较次数是________ 答案:n-1 13. 在堆排序中,堆的建立时间复杂度为________ 答案:O(n) 14. 从一个顶点到其余各顶点的最短路径算法是________

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

数据结构与算法期末考试题及答案 一、选择题 1. 用于分离由加权无向边组成的完全连通图中连通分量中不相邻顶点的单纯形算法是(C) A. 最小生成树算法 B. 广度优先搜索算法 C. 最大流算法 D. 关键路径算法 2. 要设计一个使用图来表示的行业里的公司的决策问题,图的顶点应该表示(B) A. 公司拥有的资源 B. 公司所面对的决策选择 C. 公司内部的组织结构 D. 公司的竞争对手 3. 算法的计算时间复杂度O(log2n)中的n表示(A) A. 求解问题规模 B. 求解算法所处理的数据量 C. 求解问题中所涉及的参数量 D. 求解算法所进行的求解步骤 4. 以树形结构存储的优先队列中元素出队的操作时间复杂度是(C)

A. O(1) B. O(n) C. O(log2n) D. O(n2) 5. 以下关于贝尔曼-福特算法的描述错误的是(A) A. 贝尔曼-福特算法是求图 G=(V,E)最小生成树的法 B. 贝尔曼-福特算法克服了Prim算法因存储顶点增量重复而带来的内存浪费 C. 求解过程中,要维护贝尔曼-福特树中任意两个顶点之间的最短距离 D. 贝尔曼-福特算法可以解决单源最短路径问题 二、简答题 1. 请说明拓扑排序的概念,以及如何使用拓扑排序解决求解关键路径的问题。 拓扑排序是指对有向无环图进行排序,得到一个顶点的线性序列,使得对于 图中的每条有向边(u,v),均有u在v之前。 拓扑排序可用于求解关键路径,首先对所有活动按照拓扑排序的方法进行排序,计算该活动的最早开始时间ESi和最晚开始时间LSi,若ESi=LSi,则此活动 运行期间不能延迟,为关键活动;若ESi≠LSi,则此活动可以合理推迟,不为关键活动。

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

《数据结构》期末考试试题及答案 (2003-2004学年第2学期) 单项选择题1、C 2、D 3、A 4、D 5、C 6、D 7、A 8、B 9、C 10、C 一、 1.对于一个算法,当输入非法数据时,也要能作出相应的处理,这种要求称为( c)。 (A)、正确性(B). 可行性(C). 健壮性(D). 输入性 2.设S为C语言的语句,计算机执行下面算法时,算法的时间复杂度为(d )。 for(i=n-1;i>=0;i--) for(j=0;jnext; p->next= Q.front->next; (B)、p=Q.front->next; Q.front->next=p->next; (C)、p=Q.rear->next; p->next= Q.rear->next; (D)、p=Q->next; Q->next=p->next; 9. Huffman树的带权路径长度WPL等于( c ) (A)、除根结点之外的所有结点权值之和(B)、所有结点权值之和 (C)、各叶子结点的带权路径长度之和(D)、根结点的值

数据结构暨南大学期末试卷试题

数据结构暨南大学期末试卷试题 一、判断题(共10分) 1. 当静态链表采用数组实现时,插入与删除操作仍需移动元素。 2. 栈也是一种线性表,也同样有顺序存储结构和链式存储结构。 3. 二叉树的三种遍历算法区别仅在于对树根、左右子树访问先后顺序的不同。 4. 邻接表是图的一种顺序存储结构。 5. 二叉树就是度数为2的树。 6. 在哈希表中勿需比较就可找到记录在表中的位置。 7. 线性表的链式存储结构既方便其存取操作,也方便其插入与删除操作。 8. 顺序存储结构既适合于完全二叉树,也同样适合于一般的二叉树。 9.一个算法是正确的、高效率的,还不能说它就是一个“好”的算法。 10. 快速排序与堆排序的平均时间复杂度相同。 二、概念填空(共20分,每题2分) 1.对顺序存储结构的线性表,设表长为La;在各元素插入为等概率条件下,插入一个数据元素需平均移动表中元素_______ 个;在最坏情况下需移动表中元素 _______ 个。 2.从逻辑角度看,四种基本的数据结构可分为__________、 ___________、____________和____________;两种存储结构为_____________和 _________________。 3.一个深度为,的满k(k>2)叉树,其第i层(若存在)有________个结点;编号为p(p>1)的结点其父结点(父结点为非根结点)编号是___________________。 4.具有n个结点的完全二叉树的深度为____________;编号为p(

5.堆栈被称为一个_____________的线性表;队列被称为一个_____________的线性表。 6.静态查找表的查找方法主要有:有序表查找及 ________________________;在n个记录中进行折半查找,当查找不成功时,与关键字比较次数最多为_____________________。 7.一颗9阶的,_ 树,其每个结点(除根外)的子树数目为________________,关健字数目为________________。 8.内部排序方法大致可分为__________、___________、____________、 __________和_________等五类;简单排序方法的时间复杂度为_________。 9.外部排序分为两个相对独立的阶段。首先产生有序子文件即___________;然后对它们进行__________,直至整个文件有序为止。 10.文件的组织方式有_________________等三种;顺序文件又可分为 _________________两大类。 三、算法(共70分) 要求:对1、2、3题,在它们的下划线处填空;对4、5、6、7题,从第7题以下的空白纸张处开始书写,标明题号且只写出最终结果即可。 1. 算法填空题 (12分) Int Search_Bin(SSTable ST, KeyType key) { 在有序表ST中折半查找其关键字等于key的数据元素。若找到,则函数值为该元素在表中的位置,否则为0。 Low =1; high=ST.length; While (__________________){ mid=_______________________; if EQ(key, ST.elem[mid].key) return mid; else if LT( key, ST.elem[mid].key) high=______________; else low=______________;

大学数据结构期末考试试题(有答案)

大学数据结构期末考试试题(有答案)

“数据结构”期末考试试题 一、单选题(每小题2分,共12分) 1.在一个单链表HL中,若要向表头插入一个由指针p指向的结点,则执行( )。 A. HL=ps p一>next=HL B. p一>next=HL;HL=p3 C. p一>next=Hl;p=HL; D. p一>next=HL一>next;HL一>next=p; 2.n个顶点的强连通图中至少含有( )。 A.n—l条有向边 B.n条有向边 C.n(n—1)/2条有向边 D.n(n一1)条有向边 3.从一棵二叉搜索树中查找一个元素时,其时间复杂度大致为( )。 A.O(1) B.O(n) C.O(1Ogzn) D.O(n2) 4.由权值分别为3,8,6,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为( )。 A.24 B.48 C. 72 D. 53 5.当一个作为实际传递的对象占用的存储空间较大并可能需要修改时,应最好把它说明为( )参数,以节省参数值的传输时间和存储参数的空间。 A.整形 B.引用型 C.指针型 D.常值引用型· 6.向一个长度为n的顺序表中插人一个新元素的平均时间复杂度为( )。 A.O(n) B.O(1) C.O(n2) D.O(10g2n) 二、填空题(每空1分,共28分) 1.数据的存储结构被分为——、——、——和——四种。 2.在广义表的存储结构中,单元素结点与表元素结点有一个域对应不同,各自分别为——域和——域。 3.——中缀表达式 3十x*(2.4/5—6)所对应的后缀表达式为————。 4.在一棵高度为h的3叉树中,最多含有——结点。 5.假定一棵二叉树的结点数为18,则它的最小深度为——,最大深度为——· 6.在一棵二叉搜索树中,每个分支结点的左子树上所有结点的值一定——该结点的值,右子树上所有结点的值一定——该结点的值。 7.当向一个小根堆插入一个具有最小值的元素时,该元素需要逐层——调整,直到被调整到——位置为止。 8.表示图的三种存储结构为——、——和———。 9.对用邻接矩阵表示的具有n个顶点和e条边的图进行任一种遍历时,其时间复杂度为——,对用邻接表表示的图进行任一种遍历时,其时间复杂度为——。 10.从有序表(12,18,30,43,56,78,82,95)中依次二分查找43和56元素时,其查找长度分别为——和——· 11.假定对长度n=144的线性表进行索引顺序查找,并假定每个子表的长度均为,则进行索引顺序查找的平均查找长度为——,时间复杂度为——· 12.一棵B—树中的所有叶子结点均处在——上。 13.每次从无序表中顺序取出一个元素,把这插入到有序表中的适当位置,此种排序方法叫做——排序;每次从无序表中挑选出一个最小或最大元素,把它交换到有序表的一端,此种排序方法叫做——排序。 14.快速排序在乎均情况下的时间复杂度为——,最坏情况下的时间复杂度为——。 三、运算题(每小题6分,共24分) 1.假定一棵二叉树广义表表示为a(b(c,d),c(((,8))),分别写出对它进行先序、中序、后序和后序遍历的结果。 先序: 中序; 后序: 2.已知一个带权图的顶点集V和边集G分别为: V={0,1,2,3,4,5}; E={(0,1)8,(0,2)5,(0,3)2,(1,5)6,(2,3)25,(2,4)13,(3,5)9,(4,5)10}, 则求出该图的最小生成树的权。 最小生成树的权; 3.假定一组记录的排序码为(46,79,56,38,40,84,50,42),则利用堆排序方法建立的初始堆为——。 4.有7个带权结点,其权值分别为3,7,8,2,6,10,14,试以它们为叶子结点生成一棵哈夫曼树,求出该树的带权路径长度、高度、双分支结点数。 带权路径长度:——高度:——双分支结点数:——。 四、阅读算法,回答问题(每小题8分,共16分) 1.VOldAC(List&L) { InitList(L); InsertRear(L;25); InsertFront(L,50);

数据结构期末试题及答案

计算机科学与技术、网络工程本科 《数据结构》期末考试试卷 一、选择题〔单选题,每小题3分,共33分〕 1.已知某二叉树的中序、层序序列分别为DBAFCE、FDEBCA,则该二叉树的后序序列为。 A.BCDEAF B.ABDCEF C.DBACEF D.DABECF 2.在11个元素的有序表A[1…11]中进行折半查找〔⎣⎦2/) low+〕,查找元素 (high A[11]时,被比较的元素的下标依次是。 A.6,8,10,11 B.6,9,10,11 C.6,7,9,11 D.6,8,9, 11 3.由元素序列〔27,16,75,38,51〕构造平衡二叉树,则首次出现的最小不平衡子树的根〔即离插入结点最近且平衡因子的绝对值为2的结点〕为。 A.27 B.38 C.51 D.75 4.利用逐点插入法建立序列〔50,72,43,85,75,20,35,45,65,30〕对应的二叉排序树以后,查找元素30要进行次元素间的比较。 A.4 B.5 C.6 D.7 5.循环链表的主要优点是。 A.不再需要头指针了B.已知某个结点的位置后,很容易找到它的直接前驱结点 C.在进行删除后,能保证链表不断开D.从表中任一结点出发都能遍历整个链表 6.已知一个线性表〔38,25,74,63,52,48〕,假定采用散列函数h〔key〕=key%7计算散列地址,并散列存储在散列表A[0…6]中,若采用线性探测方法解决冲突,则在该散列表上进行等概率查找时查找成功的平均查找长度为。 A.1.5 B.1.7 C.2.0 D.2.3 7.由权值为9,2,5,7的四个叶子结点构造一棵哈夫曼树,该树的带权路径长度为。 A.23 B.37 C.44 D.46 8.在最好和最坏情况下的时间复杂度均为O〔nlogn〕且稳定的排序方法是。 A.基数排序B.快速排序C.堆排序D.归并排序 9.无向图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.aebdcf B.abedfc C.aedfcb D.acfdeb 10.置换-选择排序的功能是。 A.产生初始归并段B.选出最大的元素C.产生有序文件D.置换某个记录 11.ISAM和VSAM文件属于。 A.索引顺序文件B.索引非顺序文件C.顺序文件D.散列文件二、填空题(1~8每空2分,9~12每空1分,共20分〕 1.下面程序段的时间复杂度为[1]。 Sum=1; For (i=0; sum

相关主题
相关文档
最新文档