《数据结构(C语言描述)》期末试卷.

合集下载

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

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

数据结构c期末考试题及答案一、选择题(每题2分,共20分)1. 在数据结构中,以下哪种数据结构可以有效地表示元素之间的“一对一”关系?A. 链表B. 栈C. 队列D. 哈希表答案:D2. 以下哪个算法的时间复杂度是O(n^2)?A. 冒泡排序B. 快速排序C. 二分查找D. 归并排序答案:A3. 在二叉树中,叶子节点是指?A. 没有子节点的节点B. 只有一个子节点的节点C. 有两个子节点的节点D. 包含子节点的节点答案:A4. 以下哪种排序算法是稳定的?A. 快速排序B. 冒泡排序C. 堆排序D. 选择排序答案:B5. 在图的遍历中,深度优先搜索(DFS)使用的是?A. 栈B. 队列C. 链表D. 哈希表答案:A6. 哈希表解决冲突的一种方法是?A. 链地址法B. 线性探测法C. 二次探测法D. 所有选项都是答案:D7. 以下哪种数据结构适合实现数据库索引?A. 树B. 链表C. 数组D. 队列答案:A8. 以下哪种排序算法的空间复杂度是O(1)?A. 插入排序B. 归并排序C. 快速排序D. 冒泡排序答案:A9. 在图的表示中,邻接矩阵适用于表示?A. 稠密图B. 稀疏图C. 无向图D. 有向图答案:A10. 以下哪种数据结构可以用于实现LRU缓存淘汰算法?A. 队列B. 栈C. 链表D. 哈希表答案:C二、填空题(每题2分,共20分)1. 在数据结构中,栈是一种______的数据结构,遵循后进先出的原则。

答案:线性2. 一个长度为n的数组,使用二分查找算法查找一个元素的时间复杂度是______。

答案:O(log n)3. 红黑树是一种______的二叉查找树。

答案:平衡4. 在图的遍历中,广度优先搜索(BFS)使用的是______。

答案:队列5. 哈希表的装载因子是指______与哈希表大小的比值。

答案:哈希表中已存元素数量6. 快速排序算法中,基准元素的选择会影响算法的______。

答案:性能7. 在图的表示中,邻接表适用于表示______。

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

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

《数据结构》期末考试试题及答案一、单项选择题1. 数据结构是计算机科学的基础学科之一。

下列哪个选项正确描述了数据结构的定义?A. 数据结构是一种计算机程序B. 数据结构是一种存储和组织数据的方法C. 数据结构是一种人工智能技术D. 数据结构是一种操作系统答案:B2. 链表和数组是常见的数据结构,它们之间的主要区别是:A. 数组可以存储不同类型的数据,而链表只能存储相同类型的数据B. 数组的元素在内存中是连续存储的,而链表的元素在内存中是分散存储的C. 链表可以随机访问元素,而数组只能顺序访问元素D. 链表的插入和删除操作更高效,而数组的访问操作更高效答案:B3. 在二叉树中,每个节点最多可以有多少个子节点?A. 1B. 2C. 3D. 无限多个答案:B二、填空题1. 假设有一组数据 [5, 8, 3, 2, 9],按照从小到大的顺序进行冒泡排序的过程中,经过三次交换后的结果是__2__,__3__,__5__,__8__,__9__。

2. 请完成以下代码,实现栈的入栈和出栈操作:```pythonclass 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()) # 输出 3print(s.pop()) # 输出 2print(s.is_empty()) # 输出 False ```答案:```pythonclass Stack:def __init__(self):self.stack = []def push(self, item):self.stack.append(item)def pop(self):if not self.is_empty():def is_empty(self):return len(self.stack) == 0# 示例代码s = Stack()s.push(1)s.push(2)s.push(3)print(s.pop()) # 输出 3print(s.pop()) # 输出 2print(s.is_empty()) # 输出 False```三、简答题1. 请简要介绍树的基本概念及常见的树结构。

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

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

数据结构c语言期末考试题及答案一、单项选择题(每题2分,共20分)1. 在数据结构中,线性结构和非线性结构的区别在于()。

A. 结构中元素的个数B. 结构中是否包含子结构C. 结构中元素之间是否有一对一关系D. 结构中元素之间是否有一对多关系答案:C2. 线性表的顺序存储结构和链式存储结构相比,其优点是()。

A. 存储密度高B. 存储密度低C. 插入和删除操作快D. 存储空间可以动态分配答案:A3. 在一个长度为n的顺序表中,删除第i个元素(1≤i≤n)时,需要移动的元素个数为()。

A. i-1B. n-iC. n-i+1D. n-i-1答案:B4. 栈的运算遵循()原则。

A. 先进先出B. 先进后出C. 后进先出D. 后进后出答案:C5. 在二叉树的前序遍历中,访问顺序为()。

A. 根-左-右B. 左-根-右C. 左-右-根D. 右-左-根答案:A6. 哈希表的冲突解决方法中,链地址法是()。

A. 将所有元素存储在同一个存储单元B. 将所有元素存储在同一个链表中C. 将所有元素存储在同一个数组中D. 将所有元素存储在同一个链表的同一个位置答案:B7. 在图的遍历中,深度优先搜索(DFS)和广度优先搜索(BFS)的主要区别在于()。

A. 遍历的顺序不同B. 遍历的起点不同C. 遍历的路径不同D. 遍历使用的存储结构不同答案:D8. 快速排序算法的时间复杂度为()。

A. O(n)B. O(nlogn)C. O(n^2)D. O(logn)答案:B9. 归并排序算法的时间复杂度为()。

A. O(n)B. O(nlogn)C. O(n^2)D. O(logn)答案:B10. 在二叉搜索树中,查找一个元素的时间复杂度为()。

A. O(n)B. O(logn)C. O(n^2)D. O(1)答案:B二、填空题(每题2分,共20分)1. 在数据结构中,一个算法的时间复杂度通常用______来描述。

答案:大O符号2. 线性表的两种基本操作是插入和______。

数据结构C语言版期末考试试题(有答案)

数据结构C语言版期末考试试题(有答案)

数据结构C语言版期末考试试题(有答案)一、选择题(每题5分,共40分)1. 下列关于数据结构的叙述中,正确的是()A. 数据结构是研究数据元素的存储结构的学科B. 数据结构是研究数据元素之间逻辑关系的学科C. 数据结构是研究数据元素及其之间关系的学科D. 数据结构是研究数据元素的排序和查找的学科答案:C2. 在线性表中,第一个元素存储在()A. 随机存储单元B. 数据结构的起始位置C. 数据结构的结束位置D. 数据结构的中间位置答案:B3. 下列哪种排序算法的时间复杂度是O(nlogn)()A. 冒泡排序B. 选择排序C. 插入排序D. 快速排序答案:D4. 在下列数据结构中,哪一个不是树形结构()A. 二叉树B. 树C. 图D. 队列答案:D5. 在下列数据结构中,哪一个不是线性结构()A. 栈B. 队列C. 双向链表D. 图答案:D6. 在顺序表中,元素之间逻辑上的顺序关系是由()来体现的。

A. 数据元素的物理位置B. 指针C. 引用D. 数组下标答案:A7. 在下列排序算法中,哪一个是不稳定的排序算法()A. 冒泡排序B. 选择排序C. 插入排序D. 快速排序答案:B8. 在下列查找算法中,哪一个的平均查找长度最小()A. 顺序查找B. 二分查找C. 二叉树查找D. 哈希查找答案:B二、填空题(每题5分,共30分)9. 一个栈的顺序存储空间为S[1..m],栈顶指针为top,当栈为空时,top的值为______。

答案:010. 在链表中,每个节点至少包含两个域,即______和______。

答案:数据域;指针域11. 在二叉树中,度为0的节点数n0与度为2的节点数n2之间的关系为______。

答案:n0 = n2 + 112. 在顺序查找算法中,查找失败时,算法的时间复杂度为______。

答案:O(n)13. 在哈希表中,处理冲突的两种主要方法是______和______。

答案:开放地址法;链地址法三、判断题(每题5分,共20分)14. 线性表可以是空表。

数据结构c语言版期末考试试题

数据结构c语言版期末考试试题

数据结构c语言版期末考试试题work Information Technology Company.2020YEAR《数据结构与算法》复习题一、选择题。

20.如果最常用的操作是取第i个结点及其前驱,则采用 D 存储方式最节省时间。

A.单链表 B.双链表 C.单循环链表 D.顺序表21.在一个具有n个结点的有序单链表中插入一个新结点并仍然保持有序的时间复杂度是B 。

A.O(1) B.O(n) C.O(n2) D.O(nlog2n)27.下述哪一条是顺序存储结构的优点? C 。

A插入运算方便 B可方便地用于各种逻辑结构的存储表示C存储密度大 D删除运算方便35.在单链表指针为p的结点之后插入指针为s的结点,正确的操作是s->next=p->next ;p->next=s;41.以下 B 不是队列的基本运算?A.从队尾插入一个新元素B.从队列中删除第i个元素C.判断一个队列是否为空D.读取队头元素的值47.在循环队列中,若front与rear 分别表示对头元素和队尾元素的位置,则判断循环队列空的条件是 C。

A.front==rear+1 B.rear==front+1 C.front==rear D.front==04.向一个栈顶指针为h的带头结点的链栈中插入指针s所指的结点时,应执行s->next=h->next ;h->next=s50.若栈采用顺序存储方式存储,现两栈共享空间V[1 m],top[1]、top[2]分别代表第1和第2个栈的栈顶,栈1的底在V[1],栈2的底在V[m],则栈满的条件是 B 。

A.|top[2]-top[1]|=0 B. top[1]+1=top[2] C.top[1]+top[2]=m D.top[1]=top[2] 52.允许对队列进行的操作有 D 。

A.对队列中的元素排序 B.取出最近进队的元素 C.在队头元素之前插入元素 D.删除队头元素54.若用一个大小为6的数值来实现循环队列,且当前rear和front的值分别为0和3,当从队列中删除一个元素,再加入两个元素后,rear和front的值分别为 B 。

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

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

《数据结构》期末考试试卷试题及答案一、选择题(每题5分,共20分)1. 下列哪个不是线性结构?A. 栈B. 队列C. 图D. 数组2. 下列哪个不是栈的基本操作?A. 入栈B. 出栈C. 查找D. 判断栈空3. 下列哪个不是队列的基本操作?A. 入队B. 出队C. 查找D. 判断队列空4. 下列哪个不是图的基本概念?A. 顶点B. 边C. 路径D. 环二、填空题(每题5分,共20分)5. 栈是一种______结构的线性表,队列是一种______结构的线性表。

6. 图的顶点集记为V(G),边集记为E(G),则无向图G=(V(G),E(G)),有向图G=(______,______)。

7. 树的根结点的度为______,度为0的结点称为______。

8. 在二叉树中,一个结点的左子结点是指______的结点,右子结点是指______的结点。

三、简答题(每题10分,共30分)9. 简述线性表、栈、队列、图、树、二叉树的基本概念。

10. 简述二叉树的遍历方法。

11. 简述图的存储结构及其特点。

四、算法题(每题15分,共30分)12. 编写一个算法,实现栈的入栈操作。

13. 编写一个算法,实现队列的出队操作。

五、综合题(每题20分,共40分)14. 已知一个无向图G=(V,E),其中V={1,2,3,4,5},E={<1,2>,<1,3>,<2,4>,<3,4>,<4,5>},画出图G,并给出图G的邻接矩阵。

15. 已知一个二叉树,其前序遍历序列为ABDCE,中序遍历序列为DBACE,请画出该二叉树,并给出其后序遍历序列。

答案部分一、选择题答案1. C2. C3. C4. D二、填空题答案5. 后进先出先进先出6. V(G),E(G)7. 0 叶结点8. 左孩子右孩子三、简答题答案9. (1)线性表:一个线性结构,其特点是数据元素之间存在一对一的线性关系。

(完整版)数据结构c语言版期末考试复习试题

(完整版)数据结构c语言版期末考试复习试题

《数据结构与算法》复习题一、选择题。

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。

数据结构c语言期末考试题库及详解答案

数据结构c语言期末考试题库及详解答案

数据结构c语言期末考试题库及详解答案数据结构C语言期末考试题库及详解答案一、选择题1. 在数据结构中,线性表的顺序存储结构被称为:A. 链式存储结构B. 栈C. 队列D. 数组答案:D2. 下列关于栈的描述,错误的是:A. 栈是一种特殊的线性表B. 栈的特点是后进先出C. 栈顶元素是最后插入的元素D. 栈的插入和删除操作都发生在栈顶答案:C二、填空题1. 在C语言中,定义一个具有10个元素的整型数组可以使用语句:________。

答案:int arr[10];2. 链表与数组相比,其优点是________。

答案:动态内存分配,不需要预先知道数据规模三、简答题1. 简述二叉树的遍历方法有哪些,并说明它们的特点。

答案:二叉树的遍历方法主要有前序遍历、中序遍历和后序遍历三种。

前序遍历首先访问根节点,然后递归地遍历左子树和右子树;中序遍历首先遍历左子树,然后访问根节点,最后遍历右子树;后序遍历首先遍历左子树和右子树,最后访问根节点。

每种遍历方法都可以用来对二叉树进行不同的操作和分析。

2. 什么是哈希表?它在实际应用中有哪些优点?答案:哈希表是一种通过哈希函数将键映射到表中一个位置来访问记录的数据结构。

它的优点包括:快速的数据访问速度,因为哈希表通常在常数时间内完成查找;动态的内存分配,可以根据需要调整存储空间;以及灵活的键值对存储方式。

四、编程题1. 编写一个C语言函数,实现单链表的逆序输出。

答案:```c#include <stdio.h>#include <stdlib.h>typedef struct Node {int data;struct Node *next;} Node;void reversePrint(Node *head) {if (head == NULL) return;reversePrint(head->next);printf("%d ", head->data);}int main() {Node *head = (Node *)malloc(sizeof(Node));head->data = 1;head->next = NULL;// 假设链表已经构建完毕reversePrint(head);return 0;}```2. 请实现一个C语言函数,用于计算一个字符串中不同字符的数量。

(完整word版)数据结构C语言版期末考试试题(有答案)

(完整word版)数据结构C语言版期末考试试题(有答案)

“数据结构”期末考试试题一、单选题(每小题2分,共12分)1.在一个单链表HL中,若要向表头插入一个由指针p指向的结点,则执行( )。

A. HL=ps p一>next=HLB. p一>next=HL;HL=p3C. 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.48C. 72 D. 535.当一个作为实际传递的对象占用的存储空间较大并可能需要修改时,应最好把它说明为( )参数,以节省参数值的传输时间和存储参数的空间。

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.当向一个小根堆插入一个具有最小值的元素时,该元素需要逐层——调整,直到被调整到——位置为止。

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

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

数据结构c语言期末考试试题及答案一、选择题(每题2分,共20分)1. 在C语言中,以下哪个关键字用于定义结构体?A. structB. unionC. enumD. typedef答案:A2. 在C语言中,以下哪个函数用于创建链表节点?A. mallocB. callocC. reallocD. free答案:A3. 如果一个链表的头指针为NULL,这意味着什么?A. 链表为空A. 链表已满C. 链表正在使用中D. 链表已损坏答案:A4. 在C语言中,以下哪个数据结构允许快速随机访问?A. 链表B. 数组C. 栈D. 队列5. 在二叉树中,以下哪个术语描述了没有子节点的节点?A. 根节点B. 叶节点C. 内部节点D. 父节点答案:B6. 以下哪个算法用于在二叉搜索树中查找一个元素?A. 深度优先搜索B. 广度优先搜索C. 插入排序D. 二分查找答案:D7. 在C语言中,以下哪个关键字用于定义一个函数?A. intB. voidC. returnD. struct答案:A8. 以下哪个选项是正确的递归函数定义?A. int fact(int n) { if (n > 1) return n * fact(n-1); else return 1; }B. int fact(int n) { if (n > 1) return n * fact(n); else return 1; }C. int fact(int n) { if (n > 1) return n * fact(n+1); else return 1; }D. int fact(int n) { if (n > 1) return n; else return 1; }9. 在C语言中,以下哪个函数用于释放动态分配的内存?A. mallocB. callocC. reallocD. free答案:D10. 在C语言中,以下哪个关键字用于定义一个指针?A. intB. charC. *D. &答案:C二、填空题(每题2分,共20分)1. 在C语言中,结构体的成员可以通过其结构体变量名和______访问。

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

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

数据结构期末考试试卷及答案一、选择题(每题2分,共20分)1. 下列哪一个不是线性结构的特点?A. 有且只有一个根结点B. 每个结点最多有一个前驱和一个后继C. 有多个根结点D. 有且只有一个叶子结点答案:C2. 在单链表中,头结点的作用是()A. 作为链表的起点B. 作为链表的终点C. 存储链表中的数据元素D. 作为链表中的第一个元素答案:A3. 在顺序表中,插入一个元素的时间复杂度是()A. O(1)B. O(n)C. O(logn)D. O(n^2)答案:B4. 下列哪种排序算法的平均时间复杂度最高?A. 冒泡排序B. 快速排序C. 直接插入排序D. 希尔排序答案:C5. 在二叉树中,具有3个结点的二叉树有()种不同的形态。

A. 2B. 3C. 4D. 5答案:C6. 下列哪种情况不适合使用哈希表?A. 查找速度快B. 数据量较大C. 数据量较小D. 数据元素关键字分布均匀答案:C7. 在图的遍历过程中,下列哪种遍历方法属于深度优先遍历?A. 广度优先遍历B. 深度优先遍历C. 混合遍历D. 随机遍历答案:B8. 下列哪种数据结构不适用于实现栈?A. 顺序表B. 链表C. 树D. 图答案:C9. 在双向链表中,删除一个元素的时间复杂度是()A. O(1)B. O(n)C. O(logn)D. O(n^2)答案:A10. 下列哪种情况不适合使用队列?A. 数据元素先进先出B. 数据元素后进先出C. 数据元素随机进出D. 数据元素按顺序进出答案:B二、填空题(每题2分,共20分)1. 线性表是具有______个数据元素的有限序列。

答案:n2. 在单链表中,每个结点包含两个域:数据域和______域。

答案:指针3. 在顺序表中,插入一个元素的时间复杂度是______。

答案:O(n)4. 快速排序的平均时间复杂度为______。

答案:O(nlogn)5. 哈希表中的冲突指的是______。

答案:不同的关键字对应同一存储位置6. 在图的遍历过程中,深度优先遍历算法使用的数据结构是______。

数据结构c语言期末试题及答案

数据结构c语言期末试题及答案

数据结构c语言期末试题及答案一、单项选择题(每题2分,共20分)1. 在C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 下列关于链表的描述,错误的是:A. 链表是一种动态数据结构B. 链表的每个节点包含数据和指向下一个节点的指针C. 链表的内存分配必须是连续的D. 链表可以很容易地插入和删除节点答案:C3. 在C语言中,以下哪个函数用于创建一个动态数组?A. mallocB. callocC. reallocD. free答案:B4. 关于栈的描述,以下说法正确的是:A. 栈是一种后进先出(LIFO)的数据结构B. 栈只能进行插入和删除操作C. 栈的插入和删除操作只能从栈底进行D. 栈可以存储任意数量的数据答案:A5. 在C语言中,以下哪个函数用于释放动态分配的内存?A. mallocB. callocC. freeD. realloc答案:C6. 下列关于二叉树的描述,错误的是:A. 二叉树的每个节点最多有两个子节点B. 二叉树的遍历方式有前序、中序和后序C. 二叉搜索树的中序遍历结果是有序的D. 二叉树的深度是指树中节点的最大数量答案:D7. 在C语言中,以下哪个函数用于将一个字符串复制到另一个字符串?A. strcpyB. strncpyC. strcatD. strcmp答案:A8. 关于图的描述,以下说法正确的是:A. 图是一种非线性数据结构B. 图的每个顶点至少有一个边C. 图的遍历可以使用深度优先搜索(DFS)或广度优先搜索(BFS)D. 图的边是无向的答案:A9. 在C语言中,以下哪个关键字用于定义一个指针?A. intB. charC. floatD. *答案:D10. 下列关于哈希表的描述,错误的是:A. 哈希表是一种通过键值对进行存储的数据结构B. 哈希表的查找时间复杂度通常是O(1)C. 哈希表可以解决冲突问题D. 哈希表的键必须是唯一的答案:D二、填空题(每题2分,共20分)1. 在C语言中,定义一个结构体的关键字是________。

(完整word版)数据结构c语言版期末考试复习试题

(完整word版)数据结构c语言版期末考试复习试题

《数据结构与算法》复习题一、选择题。

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 。

A.线性表的顺序存储结构优于链表存储结构B.二维数组是其数据元素为线性表的线性表C.栈的操作方式是先进先出D.队列的操作方式是先进后出12.通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着 B .A.数据元素具有同一特点B.不仅数据元素所包含的数据项的个数要相同,而且对应的数据项的类型要一致C.每个数据元素都一样D.数据元素所包含的数据项的个数要相等13.链表不具备的特点是 A 。

完整word版数据结构C语言版期末考试试题有答案

完整word版数据结构C语言版期末考试试题有答案

the principle of simplified EIA of construction projects in the region. In terms of land, linked to the implementation of urban and rural construction land increase and decrease, replacement indicators for priority areas project. Charges, into the projects of water; electricity, administrative chargeand preferential policies. In the area of taxation, and settled in areas of industry and its production compan% within 5 years after the completion of fiscal incentives to enterprises・ In terms of financing, integration of land, tax, financial and other resources, and con struct Government credit + busi ness credit credit system, establishment of marketizatio n, commercialization and modernization of the investment and financing platform; effective Bank・enterprise docking, encourages private capital into the Park, to raise industry development fund・ 5, optimize the environment and service industries. To create policy lowlands, Highlands, integrity of service land, development land as the goal, to optimize the area under development environment・ All administrative law enforcement departments to appoint a full-time personnel stationed in areas dedicated to coordinating and solving problems associated with businesses in this sector. When there are substantial issues, sector leaders arranged to personally intervene, in-person, in-person push tangible area building a green light, easy line・ To further reduce and standardize administrative examina廿on and approval items, simplify examination and approval links, improve efficiency; according to the ・..Since the educational practice of the mass line of the party, himself seriously in the education,practical control central eight rules and opposing he four winds and practicing hree Suns, and check the spirit of Jiao Yulu, ideology, solicit opinions based on outstanding problems checked swing, careful analysis and reflection・ Will now check report is as follows: first, adherence to the party's political discipline, eight in the central provision, change the style of the basic situation of 1, in compliance with the party's political disciplines. Conscientiously abide by the party's political discipline, abide by the Constitution and the rules and regulations of the party, in the political, ideological and maintain highly consistent with the CPC Central Committee on the action, there is no violation of the party's political discipline problems. 2, in the implementation of the central authorities of the eight provisions・ Improving research, improving research methods, but there are less grass-roots units, primary first-hand an in adequate grasp of the problem, which is to be strengthened in the future・ Second, construction, strictly in accordance with the provisions to streamline and improve the quality of meetings of the Conference・ Third, streamlining file briefs, culture involves all aspects of propaganda and ideology, sometimes due to the practical needs of invention notifications, this area needs further“数据结构”期末考试试题一、单选题(每小题2分,共12分)1.在一个单链表HL中,若要向表头插入一个由指针p指向的结点,则执行()oA. HL = ps p 一>next=HLC- p 一〉next=Hl; p=HL;D- p 一〉next=HL —〉next ;HL —〉next = p;2・n个顶点的强连通图中至少含有()oA. n—1条有向边B. n条有向边C.n(n—1) / 2条有向边D.n(n — 1)条有向边3.从一棵二叉搜索树中查找一个元素时,其时间复杂度大致为()。

数据结构c语言版期末考试复习试题

数据结构c语言版期末考试复习试题

数据结构c语言版期末考试复习试题《数据结构与算法》复习题一、选择题。

1.在数据结构中,从逻辑上可以把数据结构分为CA.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部结构2.数据结构在计算机内存中的表示是指AA.数据的存储结构B.数据结构C.数据的逻辑结构D.数据元素之间的关系3.在数据结构中,与所使用的计算机无关的是数据的A结构。

A.逻辑B.存储C.逻辑和存储D.物理(数据结构在计算机中的表示(映像)称为数据的物理(存储)结构)4.在存储数据时,通常不仅要存储各数据元素的值,而且还要存储CA.数据的处理方法B.数据元素的类型C.数据元素之间的关系D.数据的存储方法5.在决定选取何种存储结构时,一般不考虑AA.各结点的值如何B.结点个数的多少C.对数据有哪些运算D.所用的编程语言实现这种结构是否方便。

6.以下说法正确的是DA.数据项是数据的基本单位B.数据元素是数据的最小单位C.数据结构是带结构的数据项的集合D.一些表面上很不相同的数据可以有相同的逻辑结构7.算法分析的目的是C,算法分析的两个主要方面是A(1)A.找出数据结构的合理性B.研究算法中的输入和输出的关系C.分析算法的效率以求改进C.分析算法的易读性和文档性(2)A.空间复杂度和时间复杂度B.正确性和简明性C.可读性和文档性D.数据复杂性和程序复杂性8.下面程序段的时间复杂度是O(n2)=0;for(I=0;ium=;9.下面程序段的时间复杂度是O(n某m)for(i=0;i10.下面程序段的时间复杂度是O(log3n)i=0;while(i<=n)i=i某3;11.在以下的叙述中,正确的是BA.线性表的顺序存储结构优于链表存储结构B.二维数组是其数据元素为线性表的线性表C.栈的操作方式是先进先出D.队列的操作方式是先进后出12.通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着BA.数据元素具有同一特点B.不仅数据元素所包含的数据项的个数要相同,而且对应的数据项的类型要一致C.每个数据元素都一样D.数据元素所包含的数据项的个数要相等13.链表不具备的特点是AA.可随机访问任一结点B.插入删除不需要移动元素C.不必事先估计存储空间D.所需空间与其长度成正比14.不带头结点的单链表head为空的判定条件是AA.head==NULLBhead->ne某t==NULLC.head->ne某t==headDhead!=NULL15.带头结点的单链表head为空的判定条件是BA.head==NULLBhead->ne某t==NULLC.head->ne某t==headDhead!=NULL16.若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点,则采用D存储方式最节省运算时间。

《数据结构(C语言描述)》期末试卷.

《数据结构(C语言描述)》期末试卷.

专业《数据结构(C 语言描述)》期末试卷 ( — 学年 第 学期)一、填空(10分)1、一个m 阶B-树中,每个结点最少有( ceil(m/2) )个儿子结点,m 阶B+树中每个结点(除根外)最多有( m )个儿子结点.2、n(n>0)个结点构成的二叉树,叶结点最多有( floor((n+1)/2) )个,最少有( 1 )个。

若二叉树有m 个叶结点,则度为2的结点有( m-1 )个。

3、顺序查找方法适用于存储结构为( 顺序表和线性链表 )的线性表,使用折半查找方法的条件是(查找表为顺序存贮的有序表 )4、广义表A=(( ),(a ,(b ,c)),d)的表尾Gettail(A)为( ((a,(b,c)),d) )5、直接插入排序,起泡排序和快速排序三种方法中,( 快速排序 )所需的平均执行时间最小;( 快速排序 )所需附加空间最大。

二、选择(10分)1、倒排文件的主要优点是:( C )A 、便于进行插入和删除B 、便于进行文件的合并C 、能大大提高基于非主关键字数据项的查找速度D 、易于针对主关键字的逆向检索 2 下面程序段的时间复杂性为( C ) y=0;while(n>=(y+1)*(y+1)) { y++; }A 、O(n)B 、O(n 2)C 、 O(sqrt(n))D 、 O(1)3、若从二叉树的任一结点出发到根的路径上所经过的结点序列按其关键字有序,则该二叉树是( C )A 、二叉排序树B 、哈夫曼树C 、堆D 、AVL 树 4、栈和队列都是( B )A 、顺序存储的线性结构B 、限制存取点的线性结构C 、链式存储的线性结构D 、限制存取点的非线性结构5、用顺序查找方法查找长度为n 的线性表时,在等概率情况下的平均查找长度为( D ) A 、n B 、n/2 C 、(n-1)/2 D 、(n+1)/2三、简答(30分)1、已知一棵二叉树的前序扫描序列和中序扫描序列分别为ABCDEFGHIJ 和BCDAFEHJIG ,试给出该二叉树的后序序列并绘出该二叉树对应的森林。

数据结构c语言版期末考试试题及答案

数据结构c语言版期末考试试题及答案

数据结构c语言版期末考试试题及答案一、选择题(每题2分,共20分)1. 在数据结构中,线性表的顺序存储结构通常使用()。

A. 链式存储B. 连续存储C. 非连续存储D. 散列存储答案:B2. 下列关于栈的描述,正确的是()。

A. 栈是一种后进先出(LIFO)的数据结构B. 栈是一种先进后出(FILO)的数据结构C. 栈只能进行插入操作D. 栈只能进行删除操作答案:A3. 在二叉树的遍历中,先访问左子树,再访问根节点,最后访问右子树的遍历方式称为()。

A. 前序遍历B. 中序遍历C. 后序遍历D. 层次遍历答案:B4. 散列表的冲突解决方法中,开放定址法的特点是()。

A. 冲突的元素存储在表外B. 冲突的元素存储在表内C. 冲突的元素存储在表的尾部D. 冲突的元素存储在表的头部答案:B5. 以下算法中,时间复杂度为O(nlogn)的是()。

A. 快速排序B. 冒泡排序C. 插入排序D. 选择排序答案:A6. 在图的遍历算法中,深度优先搜索(DFS)使用的辅助数据结构是()。

A. 队列B. 栈C. 链表D. 树答案:B7. 哈希表的装载因子是()。

A. 表中已填入的元素个数与表的总容量的比值B. 表中已填入的元素个数与表的总容量的乘积C. 表中已填入的元素个数与表的总容量的差值D. 表中已填入的元素个数与表的总容量的商答案:A8. 以下关于链表的描述,错误的是()。

A. 链表的每个节点包含数据和指向下一个节点的指针B. 链表的插入和删除操作的时间复杂度为O(n)C. 链表的查找操作的时间复杂度为O(n)D. 链表的存储空间利用比数组更灵活答案:B9. 在二叉搜索树中,若删除一个节点,那么其子树的调整方式是()。

A. 用其左子树的最大值替换B. 用其右子树的最小值替换C. 用其左子树的最小值替换D. 用其右子树的最大值替换答案:A10. 以下排序算法中,时间复杂度为O(n)的是()。

A. 快速排序B. 归并排序C. 堆排序D. 桶排序答案:D二、简答题(每题5分,共20分)1. 请简述什么是时间复杂度,并给出一个O(n)时间复杂度的算法例子。

数据结构C语言版期末考试试题(有答案)2017-1-1218.14.59

数据结构C语言版期末考试试题(有答案)2017-1-1218.14.59

数据结构C语言版期末考试试题(有答案)2017-1-1218.14.59抢时间,抓基础,勤演练定有收获;树自信,誓拼搏,升大学回报父母。

"数据结构"期末考试试题一、单选题(每小题2分共12分)1.在一个单链表HL中若要向表头插入一个由指针p指向的结点则执行( )A. HL=ps p一>next=HLB. p一>next=HL;HL=p3C. 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.由权值分别为38625的叶子结点生成一棵哈夫曼树它的带权路径长度为( )A.24 B.48C. 72 D. 535.当一个作为实际传递的对象占用的存储空间较大并可能需要修改时应最好把它说明为( )参数以节省参数值的传输时间和存储参数的空间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.从有序表(1218304356788295)中依次二分查找43和56元素时其查找长度分别为--和--·11.假定对长度n=144的线性表进行索引顺序查找并假定每个子表的长度均为则进行索引顺序查找的平均查找长度为--时间复杂度为--·12.一棵B-树中的所有叶子结点均处在--上13.每次从无序表中顺序取出一个元素把这插入到有序表中的适当位置此种排序方法叫做--排序;每次从无序表中挑选出一个最小或最大元素把它交换到有序表的一端此种排序方法叫做--排序14.快速排序在乎均情况下的时间复杂度为--最坏情况下的时间复杂度为--三、运算题(每小题6分共24分)1.假定一棵二叉树广义表表示为a(b(cd)c(((8)))分别写出对它进行先序、中序、后序和后序遍历的结果先序:中序;后序:2.已知一个带权图的顶点集V和边集G分别为:V={012345};E={(01)8(02)5(03)2(15)6(23)25(24)13(35)9(45)10}则求出该图的最小生成树的权最小生成树的权;3.假定一组记录的排序码为(4679563840845042)则利用堆排序方法建立的初始堆为--4.有7个带权结点其权值分别为378261014试以它们为叶子结点生成一棵哈夫曼树求出该树的带权路径长度、高度、双分支结点数带权路径长度:-- 高度:-- 双分支结点数:--四、阅读算法回答问题(每小题8分共16分)1.VOldAC(List&L){InitList(L);InsertRear(L;25);InsertFront(L50);IntaL4]={58121536};for(inti=0; i<5; i++)if (a[i]%2==0)InsertFront(L a[i]);elselnsertRear(La[i]);}该算法被调用执行后得到的线性表L为:2.void AG(Queue&Q){InitQueue(Q);inta[5]={6125158};for(int i=0;i<5; i++)QInsert(Q a[i]);QInsert(QQDelete(Q));QInsert(Q20);QInsert(QQDelete(Q)十16);while(!QueueEmpty(Q))cout<<qdelete(q)<<";< p="">}该算法被调用后得到的输出结果为:五、算法填空在画有横线的地方填写合适的内容(每小题6分共12分)1.从一维数组A[n)中二分查找关键字为K的元素的递归算法若查找成功则返回对应元素的下标否则返回一1IntBinsch(ElemTypeA[]Intlowint highKeyTypeK){if(low<=high){int mid=(low+high)/2;if(K==A[mid].key)--;else if (K<a[mid].key)--;< p="">else ;}else return-l;}2.已知二叉树中的结点类型BinTreeNode定义为:structBinTreeNode{ElemType data;BinTreeNode*left*right};其中data为结点值域left和right分别为指向左、右子女结点的指针域下面函数的功能是返回二叉树BT中值为x的结点所在的层号请在划有横线的地方填写合适内容Int NodeLevel(BinTreeNode * BTElemType X){if(BT:=NULL)return 0;//空树的层号为0else if(BT一>data==X)return 1; //根结点的层号为1 //向子树中查找x结点else{int cl=NodeLevel(BT一>leftX);if(cl>=1)return cl+1;int c2=;if--;//若树中不存在X结点则返回oelse return 0;}}六、编写算法(8分)按所给函数声明编写一个算法从表头指针为HL的单链表中查找出具有最大值的结点该最大值由函数返回若单链表为空则中止运行EIemType MaxValue(LNOde*HL);"数据结构"期末考试试题答案一、单选题(每小题2分共12分)评分标准;选对者得2分否则不得分1.B 2.B 3.C 4.D 5.B 6.A二、填空题(每空1分共28分)1.顺序结构链接结构索引结构散列结构(次序无先后) 2.值(或data) 子表指针(或sublist)3.3 x 2.4 5/6一*十4.(3h一1)/25. 5 186.小于大于(或大于等于)7.向上堆顶8.邻接矩阵邻接表边集数组(次序无先后) 9.O(n2) O(e)10. 1 311.13 O()12.同一层13.插人选择14.O(nlog2n) O(n2)三、运算题(每小题6分共24分)1.先序:abcdefe //2分中序:cbdaf8e //2分后序:cdbefea //2分2.最小生成树的权:31 //6分3.(8479564240465038) //6分4.带权路径长度:131 //3分高度:5 //2分双分支结点数:6 //1分四、阅读算法回答问题(每小题8分共16分)评分标准:每小题正确得8分出现一处错误扣4分两处及以上错误不得分1.(361285025515)2.5 15 8 6 20 28五、算法填空在画有横线的地方填写合适的内容(每小题6分共12分) 1.feturn mid //2分returnBinsch(Alowmid一1K) //2分returnBmsch(Amid+1highK) //2分2.NodeLevel(BT一>rightX) //3分(c2>=1)returnc2十1 //3分六、编写算法(8分)评分标准:请参考语句后的注释或根据情况酌情给分ElemType MaxValue(LNodeO* HL){if (HL==NUlL){ //2分cerr<<"Linked llst is empty!"<<="" p="">}ElemTypemax:HL一>data;//3分LNOde*p=HI一>next;//4分while(P!:NULL){ //7分if(maxdata)max=p一>data;p=p一>next;}returnmax;//8分}数据结构复习资料一、填空题1. 数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和运算等的学科2. 数据结构被形式地定义为(DR)其中D是数据元素的有限集合R是D上的关系有限集合3. 数据结构包括数据的逻辑结构、数据的存储结构和数据的运算这三个方面的内容4. 数据结构按逻辑结构可分为两大类它们分别是线性结构和非线性结构5. 线性结构中元素之间存在一对一关系树形结构中元素之间存在一对多关系图形结构中元素之间存在多对多关系6.在线性结构中第一个结点没有前驱结点其余每个结点有且只有1个前驱结点;最后一个结点没有后续结点其余每个结点有且只有1个后续结点7. 在树形结构中树根结点没有前驱结点其余每个结点有且只有 1 个前驱结点;叶子结点没有后续结点其余每个结点的后续结点数可以任意多个8. 在图形结构中每个结点的前驱结点数和后续结点数可以任意多个9.数据的存储结构可用四种基本的存储方法表示它们分别是顺序、链式、索引和散列10. 数据的运算最常用的有5种它们分别是插入、删除、修改、查找、排序11. 一个算法的效率可分为时间效率和空间效率12. 在顺序表中插入或删除一个元素需要平均移动表中一半元素具体移动的元素个数与表长和该元素在表中的位置有关13. 线性表中结点的集合是有限的结点间的关系是一对一的14. 向一个长度为n的向量的第i个元素(1≤i≤n+1)之前插入一个元素时需向后移动 n-i+1 个元素15. 向一个长度为n的向量中删除第i个元素(1≤i≤n)时需向前移动 n-i 个元素16. 在顺序表中访问任意一结点的时间复杂度均为 O(1)因此顺序表也称为随机存取的数据结构17. 顺序表中逻辑上相邻的元素的物理位置必定相邻单链表中逻辑上相邻的元素的物理位置不一定相邻18.在单链表中除了首元结点外任一结点的存储位置由其直接前驱结点的链域的值指示19.在n个结点的单链表中要删除已知结点*p需找到它的前驱结点的地址其时间复杂度为O(n)20. 向量、栈和队列都是线性结构可以在向量的任何位置插入和删除元素;对于栈只能在栈顶插入和删除元素;对于队列只能在队尾插入和队首删除元素21. 栈是一种特殊的线性表允许插入和删除运算的一端称为栈顶不允许插入和删除运算的一端称为栈底</a[mid].key)--;<></qdelete(q)<<";<>。

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

专业《数据结构(C 语言描述)》期末试卷 ( — 学年 第 学期)一、填空(10分)1、一个m 阶B-树中,每个结点最少有( ceil(m/2) )个儿子结点,m 阶B+树中每个结点(除根外)最多有( m )个儿子结点.2、n(n>0)个结点构成的二叉树,叶结点最多有( floor((n+1)/2) )个,最少有( 1 )个。

若二叉树有m 个叶结点,则度为2的结点有( m-1 )个。

3、顺序查找方法适用于存储结构为( 顺序表和线性链表 )的线性表,使用折半查找方法的条件是(查找表为顺序存贮的有序表 )4、广义表A=(( ),(a ,(b ,c)),d)的表尾Gettail(A)为( ((a,(b,c)),d) )5、直接插入排序,起泡排序和快速排序三种方法中,( 快速排序 )所需的平均执行时间最小;( 快速排序 )所需附加空间最大。

二、选择(10分)1、倒排文件的主要优点是:( C )A 、便于进行插入和删除B 、便于进行文件的合并C 、能大大提高基于非主关键字数据项的查找速度D 、易于针对主关键字的逆向检索 2 下面程序段的时间复杂性为( C ) y=0;while(n>=(y+1)*(y+1)) { y++; }A 、O(n)B 、O(n 2)C 、 O(sqrt(n))D 、 O(1)3、若从二叉树的任一结点出发到根的路径上所经过的结点序列按其关键字有序,则该二叉树是( C )A 、二叉排序树B 、哈夫曼树C 、堆D 、AVL 树 4、栈和队列都是( B )A 、顺序存储的线性结构B 、限制存取点的线性结构C 、链式存储的线性结构D 、限制存取点的非线性结构5、用顺序查找方法查找长度为n 的线性表时,在等概率情况下的平均查找长度为( D ) A 、n B 、n/2 C 、(n-1)/2 D 、(n+1)/2三、简答(30分)1、已知一棵二叉树的前序扫描序列和中序扫描序列分别为ABCDEFGHIJ 和BCDAFEHJIG ,试给出该二叉树的后序序列并绘出该二叉树对应的森林。

院(系) 班级 姓名 学号 ……………………………………………装…………………………订………………………线……………………………………………解:后序序列为:DCBFJIHGEA2、若对序列(7,3,1,8,6,2,4,5)按从小到大排序,请写出起泡排序的第一趟结果和堆排序的初始堆。

解:冒泡:3 1 7 6 2 4 5 8堆:8 7 4 5 6 2 1 33、某通讯系统只可能有A、B、C、D、E、F 6种字符,其出现的概率分别是0.1、0.4、0.04、0.16、0.19、0.11,试画出相应的哈夫曼树,并设计哈夫曼编码。

解:编码:A:1011 B:0 C:1010 D:110 E:111 F:1004、在二叉平衡检索树(AVL树)的调整中,将最靠近新插入点的不平衡结点调整平衡后,树中是否还会有不平衡结点?为什么?解:不会再有不平衡点。

因为插入结点发生不平衡现象后,会改变以“靠近新插入点的不平衡结点”为根的子树(即最小不平横树)的高度加1,经过调整后使最小不平衡树的整体高度又恢复到原来的值,所以不会对原平衡树的其他部分造成危害,因此不会再有不平衡点。

5、指定Hash函数H(k)=3*k mod 11及线性探测开地址法处理冲突,试在0~10的散列空间中对关键字序列(22,41,53,46,30,13,01,67)构造Hash表,并求在等查找概率下查找成功的平均查找长度。

解:插入元素后的分布情况:ASL = (1+1+1+1+2+2+2+6)/8=2.0四、(10分)下图是带权的有向图G的邻接矩阵表示,请给出:1、其邻接表存储结构2、按Floyd算法求所有顶点对之间最短距离的矩阵变化过程。

V1 V2 V3 V4V1| 0 1 ∞ 4V2| ∞0 9 2V3| 3 5 0 8V4|∞∞ 6 0解:Floyd算法执行过程中矩阵的变化情况为(从左到右):五、(12分)设双链表结点结构为llink data rlink,请设计算法将其中P所指结点与其rlink 所指结点位置互换的算法。

解:typedef struct DLNode{ElemType data;struct DLNode *llink,*rlink;}DLNode,*DLinkList;//思想:将P->rlink先从链表中删除掉,然后再插入到P前Status SwapANode(DLNode *&P){//结点存在吗?if(!P || !(P->rlink))return ERROR;q = P->rlink;//删除q结点if(!q->rlink)P->rlink = NULL;else {P->rlink = q->rlink;q->rlink->llink = P;}//将q结点插入到P结点前面if(!P->llink){q->llink = NULL;q->rlink = P;P->llink = q;} else {q->llink = P->llink;q->rlink = P;P->llink->rlink = q;P->llink = q;}return OK;}六、(13分)若有一棵二叉树的存储结构为二叉链表,T指向根结点,请写出一个非递归算法判定其是否为二叉排序数。

解:解法一:#define TRUE 1#define FALSE 0typedef int BOOL;typedef struct BTreeNode {ElemType data;struct BTreeNode *lchild,*rchild;}BTreeNode,*BTree;//我是将教材P130的中序非递归遍历方法改的//注释没写,大家看书上的吧BOOL IsBST(BTree T){if(!T) return TRUE;InitStack(S);x = T->data;Push(S,T);while(!StackEmpty(S)){while(GetTop(S,p) && p) Push(S,p->lchild);Pop(S,p);if(!StackEmpty(S)){Pop(S,p);if(x > p->data) return FALSE;x = p->data;Push(S,p->rchild);} // if// whilereturn TRUE;}另解://我的另外一个解法,根据longeli的思想//Author: Ritchie// Date: 2002-10-12typedef int ElemType;typedef struct BiTreeNode {ElemType data;struct BTreeNode *lchild,*rchild;}BiTreeNode,*BiTree;//功能:判断二叉树T是否为二叉排序树,如果是返回TRUE,否则返回 FALSE//思想:判断T中的结点是否符合要求,按层序进行判断,一旦不符合就返回Status IsBST(BiTree T){if (!T) return TRUE; //空树是BSTInitQueue(Q);EnQueue(Q,T);while(!QueueEmpty(Q)){DeQueue(Q,t);//左右孩子先入队if(t->lchild) EnQueue(Q,t->lchild);if(t->rchild) EnQueue(Q,t->rchild);if(t->lchild && t->lchild){// 左右子树不为空且不满足BST的条件,返回FALSEif((t->lchild->data>=t->data)||(t->rchild->data<t->data))return FALSE;} else if (t->lchild && (t->lchild->data >= t->data)) { //右子树为空的情况return FALSE;} else if(t->rchild && (t->rchild->data < t->data)) {//左子树为空的情况return FALSE;}}DestroyQueue(Q);return TRUE;}用递归的方式做也有两三种做法,这儿就不列举了。

七、(15分)下表列出了某工序之间的优先关系和各工序所需时间,要求:(1)画出AOE网(2)列出各事件的最早、最晚发生时间(3)找出该AOE网中的关键路径,并回答完成该工程所需要的最短时间。

解:(1) AOE图如下(需要添加虚线才可以画出图,我就是在这儿被迷惑住的,第一次看到这样的题目)(2)各事件的最早最迟发生时间:(3)通过上表不用求出活动的最早最迟开始时间就可以看出关键路径为:1,2,4,6,8,9,10,11完成工程所需的最短时间为:4451. 算法的计算量的大小称为计算的()。

【北京邮电大学2000 二、3 (20/8分)】A.效率B. 复杂性C. 现实性D. 难度2. 算法的时间复杂度取决于()【中科院计算所1998 二、1 (2分)】A.问题的规模B. 待处理数据的初态C. A和B3.计算机算法指的是(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. 以上几个都是错误的1.下述哪一条是顺序存储结构的优点?()【北方交通大学2001 一、4(2分)】A.存储密度大B.插入运算方便C.删除运算方便D.可方便地用于各种逻辑结构的存储表示2.下面关于线性表的叙述中,错误的是哪一个?()【北方交通大学2001 一、14(2分)】A.线性表采用顺序存储,必须占用一片连续的存储单元。

相关文档
最新文档