数据结构期末综合练习

合集下载

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

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

数据结构期末考试题及答案一、单项选择题(每题2分,共20分)1. 在数据结构中,算法的时间复杂度是指()。

A. 执行算法所需要的计算工作量B. 执行算法所需要的存储空间C. 执行算法所需要的时间D. 执行算法所需要的内存大小答案:A2. 线性表的顺序存储结构和链式存储结构相比,其优点是()。

A. 插入和删除操作快B. 存储密度高C. 存储空间可以动态分配D. 存储空间利用率高答案:B3. 栈的基本运算中,不包括()。

A. 入栈B. 出栈C. 取栈顶元素D. 排序答案:D4. 在二叉树的遍历中,先序遍历的顺序是()。

A. 先根后子B. 先子后根C. 先左后右D. 先右后左答案:A5. 哈希表解决冲突的方法不包括()。

A. 分离链接法B. 线性探测法C. 链地址法D. 二分查找法答案:D6. 一个图的邻接矩阵表示法中,若第i行第j列的元素为1,则表示()。

A. 顶点i和顶点j之间有一条边B. 顶点i和顶点j之间没有边C. 顶点i和顶点j之间有n条边D. 顶点i和顶点j之间有m条边答案:A7. 在查找算法中,二分查找法适用于()。

A. 线性表B. 哈希表C. 树形结构D. 图结构答案:A8. 快速排序算法的时间复杂度在最坏情况下是()。

A. O(n)B. O(nlogn)C. O(n^2)D. O(2^n)答案:C9. 一个有n个顶点的无向图,其边数最多为()。

A. nB. n(n-1)/2C. n(n+1)/2D. 2n答案:B10. 以下哪个不是排序算法()。

A. 冒泡排序B. 选择排序C. 插入排序D. 归并排序答案:D二、填空题(每题2分,共20分)1. 在数据结构中,一个算法的空间复杂度是指算法执行过程中所需要的___________。

答案:存储空间2. 线性表的链式存储结构中,每个节点包含___________和___________。

答案:数据元素,指针3. 栈的特点是___________,___________。

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

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

数据结构期末考试试题及答案一、选择题1. 以下哪种数据结构是线性存储结构?A. 树B. 图C. 栈D. 队列答案:C2. 在链表中,如果一个节点既没有前驱也没有后继,那么这个节点被称作什么?A. 首节点B. 尾节点C. 中间节点D. 孤立节点答案:B3. 树的度是指什么?A. 树中节点的个数B. 树中最大的层次数C. 树的分支数D. 树的节点的度的最大值答案:C4. 在二叉搜索树中,若要查找给定值的节点,当查找失败时应返回的值是?A. -1B. 0C. 1D. 该值本身答案:A5. 快速排序算法的时间复杂度最坏情况下是多少?A. O(n)B. O(nlogn)C. O(n^2)D. O(n!)答案:C二、填空题1. 在顺序表中,元素的物理位置相邻的特点是________,这使得顺序表在________操作上具有较高的效率。

答案:连续性;访问2. 链表相比顺序表的优势在于它能够动态地________存储空间,并且________操作不需要移动大量元素。

答案:分配和释放;插入与删除3. 栈是一种________的数据结构,只允许在________进行插入和删除操作。

答案:后进先出;栈顶4. 图的遍历算法主要有两种,分别是________和________。

答案:深度优先搜索;广度优先搜索5. 哈夫曼树是一种特殊的二叉树,它常用于数据压缩,其构建过程是基于________原则。

答案:最小权值三、简答题1. 请简述数组和链表的优缺点。

答案:数组通过索引直接访问元素,访问速度快,但大小固定,插入和删除操作需要移动大量元素。

链表元素通过指针连接,可以动态分配大小,插入和删除效率高,但访问速度较慢,因为需要从头开始遍历。

2. 什么是二叉树的前序遍历、中序遍历和后序遍历?答案:二叉树的前序遍历是先访问根节点,然后遍历左子树,最后遍历右子树。

中序遍历是先遍历左子树,然后访问根节点,最后遍历右子树。

后序遍历是先遍历左子树,然后遍历右子树,最后访问根节点。

数据结构(本)期末综合练习(2013年6月)

数据结构(本)期末综合练习(2013年6月)

数据结构(本)期末综合练习2013年6月期末综合练习一1. 在数据结构和算法中,与所使用的计算机有关的是()。

A.数据元数间的抽象关系B.数据的存储结构C.算法的时间复杂度 D.数据的逻辑结构2. 一种逻辑结构在存储时()。

A.只要存储数据元素间的关系 B.只能采用一种存储结构C.可采用不同的存储结构 D.只要存储数据元素的值3 .对顺序表,以下叙述中正确的是 ( )。

A.用一组地址连续的存储单元依次存放线性表的数据元素B.各个数据元素的首地址是连续的C.数据元素不能随机访问D.插入操作不需要移动元素4 .对链表, 以下叙述中正确的是()。

A.不能随机访问任一结点 B.结点占用的存储空间是连续的C.插入删除元素的操作一定要要移动结点 D.可以通过下标对链表进行直接访问5.设有一个长度为25的顺序表,要删除第10个元素(下标从1开始),需移动元素的个数为()。

A.9 B.10 C.15 D.166.线性表在存储后,如果相关操作是:要求已知第i个结点的位置访问该结点的前驱结点,则采用()存储方式是不可行的。

A.单链表 B.双链表 C.单循环链表 D.顺序表7. 设单向链表中,指针p指向结点A,若要删除A的直接后继,则所需修改指针的操作为( )。

A.p->next=p->next->next;B.p=p->next;C.p=p->next->next;D.p->next=p ;8.栈和队列的共同特点是()。

A.都是先进后出 B.元素都可以随机进出C.只容许在端点处插入和删除元素 D.都是先进先出9.元素1,3,5,7按顺序依次进栈,按该栈的可能输出序列依次入队列,该队列的可能输出序列是()。

(进栈出栈可以交替进行)。

A.7,5,3,1 B.7,3,1,5C.7,5,1,3 D.5,1,3,710.元素2,4,6,8按顺序依次进栈,按该栈的的可能输出序列依次入队列,该队列的可能输出序列是()(进栈出栈可以交替进行)。

数据结构(本)期末综合练习(2022年6月)

数据结构(本)期末综合练习(2022年6月)

数据结构(本)期末综合练习(2022年6月)期末综合练习一一、单项选择题1.深度为5的完全二叉树共有20个结点,则第5层上有()个结点(根所在结点为第一层)。

A.3B.8C.5D.62.同一种逻辑结构()。

A.只能有唯一的存储结构B.可以有不同的存储结构C.只能表示某一种数据元素之间的关系D.以上三种说法均不正确3.已知一个图的边数为m,则该图的所有顶点的度数之和为()。

A.2mB.mC.2m+1D.m/24.链表所具备的特点是()。

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.与算法本身D.与数据结构13.对n个元素进行冒泡排序若某趟冒泡中只进行了()次元素间的交换,则表明序列已经排好序。

A.1B.2C.0D.n-114.设有一个长度为n的顺序表,要删除第i个元素需移动元素的个数为()。

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

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

《数据结构》期末考试试卷试题及答案第一部分:选择题(每题2分,共20分)1. 下面哪个数据结构是线性结构?A. 树B. 图C. 队列D. 网络流2. 下面哪个数据结构用于实现广度优先搜索算法?A. 栈B. 队列C. 散列表D. 堆3. 下面哪个数据结构用于实现深度优先搜索算法?A. 栈B. 队列C. 散列表D. 堆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. 堆第二部分:填空题(每题2分,共20分)1. 链表是一种______数据结构。

2. 二叉树的节点最多有______个子节点。

3. 堆是一种特殊的______。

4. 散列表的查找效率取决于______。

5. 图的遍历算法包括______和______。

6. 快速排序算法的平均时间复杂度为______。

7. 哈希表中的冲突解决方法有______和______。

8. 最小树算法包括______和______。

9. 最短路径算法包括______和______。

10. 并查集算法用于解决______问题。

第三部分:简答题(每题10分,共50分)1. 请简述栈和队列的区别。

2. 请简述二叉搜索树的特点。

3. 请简述哈希表的原理。

4. 请简述图的深度优先搜索算法。

5. 请简述最小树算法的原理。

第四部分:编程题(每题20分,共50分)1. 编写一个函数,实现链表的插入操作。

数据结构期末综合练习

数据结构期末综合练习

数据结构〔本〕期末综合练习综合练习一一、单项选择题1.设有头指针为head的带有头结点的非空单向循环链表,指针p指向其尾结点环链表,那么可利用下述语句head =head->next ;〔〕.A . p =head;B . p=NULL;C . p->next =head;D . head=p;2.在一个单链表中p指向结点a, q指向结点a的直接后继结点b,要删除结点A . p->next=q->next ;B. p=q->next;C p->next=q;Dp->next=q;3.以下说法不正确的选项是A.线性表的链式存储结构不必占用连续的存储空间B .一种逻辑结构只能有唯一的存储结构C.一种逻辑结构可以有不同的存储结构D.线性表的顺序存储结构必须占用连续的存储空间4.在一个单向链表中,在p所指结点之后插入一个s所指的结点时,可执行〔A . p= s;Bp->next=s->next;C. p=s->next; Ds->next=p->next;5.把数据存储到计算机中,并具体表达〔〕称为物理结构.A.数据元素间的逻辑关系B.数据的处理方法C.数据的性质D .数据的运算6.设有一个长度为23的顺序表,要删除第8个元素需移动元素的个数为〔A . 16B . 14C . 15D . 137.链表所具备的特点之一是〔〕.A .可以随机访问任一结点B .需要占用连续的存储空间要删除头结点,并使其仍为单向循b,可执行〔〕);和p->next=s;C .插入元素的操作不需要移动元素D .删除元素的操作需要移动元素8.设一棵有8个叶结点的二叉树,度数为 1的结点有3个,那么该树共有〔〕个结点.A 20B. 18 C . 17 D . 169.图状结构中数据元素的位置之间存在〔〕的关系.A . 一对一B .多对多C . 一对多D .每一个元素都有一个直接前驱和一个直接后继10 . 一棵具有5层的完全二叉树,最后一层有4个结点,那么该树总共有〔〕个结点A . 14B . 15C . 19D . 1811 .元素15, 9, 11, 13按顺序依次进栈,那么该栈的不可能输出序列是〔〕〔进栈出栈可以交替进行〕.A .13,11,9,15B, 15, 9, 11 , 13C .13,11,15,9D, 9, 15 ,13,1112 .设主串为“ FABcCDABcdEFaB c ,以下模式串能与主串成功匹配的是〔〕A. EFaBcB. ABCdEC. DABCCD .FAbcC13 .设有一个14阶的对称矩阵 A 〔第一个元素为 a 1,1〕,采用压缩存储的方式,将其下三角局部以行序为主序存储到1开始〕,那么矩阵中元素a 4,3在一维数组B 中的下标是〔1116 .以下说法不正确的选项是〔17 .设「棵哈夫曼树共有14个非叶结点,那么该树总共有〔一维数组B 中〔数组下标从 10 14.元素 111 , 113, 115,117按顺序依次进栈,那么该栈的不可能输出序列是〔〕〔进栈出栈可以交替进行〕.A . 117, 115, 113, 111 111 113 115 117C . 113, 111, 117, 115 117 115 11111315.在一棵二叉树中,假设编号为 的结点存在右孩子,那么右孩子的顺序编号为〔161517A .栈和队列都是线性结构.栈的特点是后进先出 C.栈和队列的特点都是先进后出.队列的特点是先进先出〕个结点A . 29C. 30 D . 2818.设有一个15阶的对称矩阵A〔第一个元素为3,1〕,采用压缩存储的方式,将其下三角局部以行序为主序存储到一维数组B中〔数组下标从i开始〕,那么矩阵中元素a4,2在一维数组B中的下标是〔〕.A. 9 B . 8 C , 7 D . 1019.如图1所示的一个图,假设从顶点a出发,按深度优先搜索法进行遍历,那么可能得到的一种顶点序列为〔〕.A . abecdfB . acfebdC . aebcfdD . aedbfca20.如图2所示的一个图,假设从顶点aX^乂深度优先搜索法进行遍历,那么可能得到的一彳 A .acedbf二、填空题1.队列的特点之2.序列13,11,14,12,17,15, 采用冒泡排序算法,经\趟冒泡后,序列的结果是3.结构中,数据元〔二?」对多白4.对16个元素的序列用冒泡遍I片排序,通布血行趟冒泡.图25.对稀疏矩阵进行压缩存储,矩阵中每个非零元素对应的三元组包括该元素的三项信息是O6.对9个元素的一组记录〔58, 35, 93, 20, 12, 78, 56, 41, 79〕进行直接插入排序〔由小到大排序〕,当把第7个记录56插入有序表,为寻找插入位置需比较次.7.在对11个记录的序列〔12 , 35, 9, 7 ,2, 11 ,56,95 ,37,58 ,60〕进行直接插入排序时,当把第6个记录11插入到有序表时,为寻找插入位置,元素间需比较次.〔由小到大排列〕8.结构中的数据元素存在一对多的关系称为结构.9.哈希函数是记录关键字的值与该记录之间所构造的对应关系.10.设有一棵深度为5的完全二叉树,第5层上有3个结点,该树共有个结点.(根所在结点为第1层)11. 20个元素进行冒泡法排序,通常需要进行19趟冒泡,其中第10趟冒泡共需要进行==次元素间的比较.12. 一棵二叉树中每一个非叶结点的度数都为2,共有10个非叶结点,那么该树共有个结点.13.一棵有19个结点的二叉树,采用链式2构存储,该树结构中有个指针域为空.14. 序列3,1,7,18,6,9,13,12经一趟归并排序的结果为_ ―.15.中序遍历一棵树可得到一个有序序列.16. 一棵有16个叶结点的哈夫曼树,那么该树共有个非叶结点.17.二叉排序树插入操作中,新插入的结点总是以树的结点被插入的18. 遍历二叉排序树可得到一个有序序列.19.广义表的(a , (d,a ,b) , h , (e ,( (i ,j ) ,k )))深度是.20.广义表(f , h , (a ,b, d, c) , d , e ,( (i ,j ) ,k ))的长度是 .21.序列4,2,5,3,8,6,7, 9,采用归并排序算法(升序),经一趟归并后,序列的结果22.广义表的(h ,c , g, a , (a ,b) , d , e ,( (i ,j ) ,k ))深度是-23.字符串a1= '' teijing " , a2 =''tef " , a3='' teifang " , a4="tefi "最小的24.设有串p1 = " ABADF ,P2=" ABAFU , P3=" ABADFA P4=" ABAF , 四个串中最小的是 .三、综合题1 .设查找表为(1)画出对上述查找表进行折半查找所对应的判定树(树中结点用下标表示)(2)说明成功查找到元素86需要经过多少次比较?(3)求在等概率条件下,成功查找的平均比较次数?2. (1)设有数据集合{50, 39, 17, 83, 111, 14, 65, 13, 91, 102, 49},依次取集合中各数据构造一棵二叉排序树.(2)一组记录的关键字序列为(6, 9, 7, 4, 5 ,8),利用堆排序(堆顶元素是最小元素)的方法建立初始堆.(要求用完全二叉树表示 )3.(1) 一组记录的关键字序列为(26, 59, 36, 18, 20, 25),给出利用堆排序(堆顶元素是最小元素)的方法建立的初始堆(要求以完全二叉树描述).(2)对关键字序列(26,59,36,18,20,64)采用快速排序,给出以第一个关键字为分割 元素,经过一次划分后的结果.4. (1)如下表为一个长度为10的有序表,给出按折半查找对该表进行查找的判定树(2)按折半查找对该表进行查找,求在等概率情况下查找成功的平均比较次数. 为了成功查找72 ,给出元素的比较次数.四、程序填空题中,用折半查找算法查找关键字等于k 的记录,查找成功返回该记录的下标,失败时返回typedef struct { int key;}NODE;int Binary_Search(NODE a[ ], int n, int k) {int low, mid, high; low=0; high=n-1;1 .以下函数在a[0]到a[n-1] -1 ,完成程序中的空格5. (1)棵哈夫曼树(2)while((1))(mid=(__(2))if(a[mid].key==k)return __(3);else if (__(4))low=mid+1;else —⑸;}return -1}1.(1) low<=high(2)( low+high)/2(3)mid;(4)a[mid].key<k(5)high=mid-1;2.设线性表以不带头结点的单向链表存储,链表头指针为head,以下程序的功能是输出链表中各结点中的数据域data o完成程序中空格局部.#define NULL 0void main(){ NODE *head ,*p ;p=head; /*p 为工作指针*/do{printf("%dn〞,⑴);(2) :}while( (3) );)2.(1) p->data(2) p=p->next(3) p!=NULL3.以下程序是前序遍历二叉树的递归算法的程序,完成程序中空格局部〔树结构中左、右指针域分别为left和right ,数据域data为字符型,BT指向根结点〕.void Inorder (struct BTreeNode *BT){if(BT!=NULL){(1);(2)—;Inorder(BT-- >right);}利用上述程序对右图进行前序遍历,结果是_〔3〕3.(3) a b d f e c4.以下程序是后序遍历二叉树的递归算法的程序,完成程序中空格局部〔树结构中左、右指针域分别为left和right ,数据域data为字符型,BT指向根结点〕.完成程序中空格局部.void Inorder (struct BTreeNode *BT)if( BT!=NULL){Inorder(BT->left);—(1)—(2)}4.(1) Inorder(BT->right) (2) printf( "%d ,BT->data)5.顺序查找算法如下,完成程序中空格局部.int search (NODE a[ ] ,int n , int k)/* 在a[0],a[1]…a[n-1],中查找关键字等于k的记录,查找成功返回记录的下标,失败时返回-1*/{ int i=0;while( i< n && a[i].key ⑴)—⑵ .if (___(3))return i;else return -1;)5.(1)!=k(2) i++;(3) a[i].key= =k综合练习一答案一、单项选择题1. C 2 , A 3 . B4.D5 . A6 . C 7. C 8. B9 . B 10 . C 11 . C 12 . A 13 . A14. D 15 . D 16 .C 17 .A 18. B 19. D 20 . B二、填空题1.先出2 . 11,13,12,14,15,17 3.树型4 . 15 5 .行下标列下标数组元素6. 4次7.38.树形9,存储位置10 .18 11 . 1012. 2113.2014. 1 , 3, 7, 18, 6, 9, 12, 1315.二叉排序树16 . 1517.叶18. 中序20. 6,4, 3, 5 , 6, 8 , 7, 922. 324.P1三、综合题1.493. (1)18 , 20, 25, 59, 26, 36一、单项选择题1.设头指针为head的非空的单向循环链表,指针p指向尾结点,那么满足表达式〔〕为真.A . p->next = =NULLB . p= =NULLC . p->next= =headD . p= =head2.数据的存储结构包括数据元素的表示和〔A .数据处理的方法相关算法D. 数据元素的类型 D. 数据元素间的关系的表示3. 一种逻辑结构〔〕A ,可以有不同的存储结构,只能有唯一的存储结构C.是指某一种数据元素之间的存储关系 D .是指某一种数据元素的性质4.在一个头指针为head的单向链表中, p指向尾结点,要使该链表成为单向循环链表可执行〔A . p= head->next; head->next=p;C head->next=p->next; p->next=head;5.链表所具备的特点之一是A .可以随机访问任一结点,占用连续的存储空间C .插入删除元素的操作不需要移动元素结点D .可以通过下标对链表进行直接访问6.元素111, 113, 115, 117按顺序依次进栈,那么该栈的不可能输出序列是〔〕〔进栈出栈可以交替进行〕.A . 117, 115, 113, 111B 111, 113, 115, 117C . 117, 115, 111, 113D , 113, 111, 117, 1157.线性结构中数据元素的位置之间存在〔〕的关系.A. 一对一B. 一对多C .多对多D.每一个元素都有一个直接前驱和一个直接后继8.以下说法正确的选项是〔〕A .栈的特点是先进后出B.栈的特点是先进先出C .队列的特点是先进后出D.栈和队列的特点都是先进后出9.在一个单向链表中p所指结点之后插入一个s所指的结点时,可执行〔〕A . p->next= s; s->next= p->next B. p->next=s->next;C p=s->nextD.s->next=p->next; p->next=s;IO .设有一个20阶的对称矩阵A〔第一个元素为a1,1〕,采用压缩存储的方式,将其下三角局部以行序为主序存储到一维数组B中〔数组下标从1开始〕,那么矩阵中元素a6,2在一维数组B中的下标是〔A. 24 B . 17 C . 16 D . 2311.元素11, 13, 15, 17按顺序依次进栈,那么该栈的不可能输出序列是〔〕〔进栈出栈可以交替进行〕.A . 17,15,13, 11B,11,13,15, 17C . 17,15,11 , 13D,13,11,17, 1512.设一棵有2n+1个结点的二叉树,除叶结点外每个结点度数都为2,那么该树共有〔〕个叶结点.A. nB. n+1 C , n+2 D . n-113.设有一个20阶的对称矩阵A〔第一个元素为au〕,采用压缩存储的方式,将其下三角局部以行序为主序存储到一维数组B中〔数组下标从1开始〕,那么矩阵中元素A .11B. 12C.14.如图1所示的一个图,假设从顶点a出发,得到的一种顶点序列为〔〕.A . abecdfB. aecbdfC0-f图115.设一棵哈夫曼树共有11个非叶结点,那么该树有〔A . 22B. 10C. 116.线性表以〔〕方式存储,能进行折半查找.A .关键字有序的顺序B.顺序C17. 一棵具有38个结点的完全二叉树,最后-层有〔A . 7B. 5 C. 6a5,2在一维数组B中的下标是〔〕13D. 10按广度优先搜索法进行遍历,那么可能.aebcfd D. aedfcb〕个叶结点.1D, 12.链接D .二叉树〕个结点.D. 8二、填空题〔根所在结点为第 1层〕18 . 一棵具有38个结点的完全二叉树,最后一层有〔 〕个结点. 19 .如图2所示的一个图, 假设从顶点a 出发,按深度优先搜索法进行遍历,那么可能得到的一种顶点序列为A . abecdf.acfebd C .aebcfd D . aedfcb 20 .对一个栈顶指针为 top 的链栈进行出栈操作,用变量 e 保存栈顶元素的值,那么执行 A. e= top->next; top->data=e; C. e=top->data; top=top->next;1 .字符串 a1= BEIJING ' , a2 = '、BEF" , a3= '' BEFANG , a4= “BEI〞最小的 2 .数组a 经初始化char a[]= English " ; a[7]中存放的是 字符串的结束符3 .把数据存储到计算机中,并具体表达数据元素间的逻辑结构称为 物理结构〔存储结构〕.4 .设有串 p1=" ABADF ,P2=" ABAFD , P3=" ABADFA P4=" ABAF ,四个串中最大的是 5 .设有一个长度为 22的顺序表,要删除第 8个元素需移动元素的个数为6 .在一棵二叉树中,假设编号为i 的结点存在右孩子,那么右孩子的顺序编号为7 .在一棵二叉树中,假设编号为i 的结点存在左孩子,那么左孩子的顺序编号为 8.设有一个长度为 20的顺序表,要插入一个元素,并作为第 8个元素, 需移动元素的个数为9.设一棵有n 个叶结点的二叉树,除叶结点外每个结点度数都为 2,那么该树共有 个结点.10 .结构中的数据元素存在多对多的关系称为 结构11 .在对一组序列 (45,29,87,12,6,63,55,37,78) 进行直接插入排序时,当把第8个记录37插入到有序表时, 为寻找插入位置需比较 次.〔由小到大排序〕12 .设有一棵深度为4的完全二叉树,第四层上有 5个结点,该树共有个结点. aB. top=top->next;E=top->data;D. top=top->next; e=data;13.n个元素进行冒泡法排序,通常需要进行趟冒泡.14.一棵二叉树中有n个非叶结点,每一个非叶结点的度数都为2,那么该树共有个叶结点.15.一棵有21个结点的哈夫曼树,该树中有个叶结点.16.在对一组记录(55,39,97,22,16,73,65,47,88)进行直接插入排序时,当把第7个记录65插入到有序表时,为寻找插入位置需比较次.(由小到大排序17.遍历二叉排序树可得到一个有序序列.18.n 个元素进行冒泡法排序,第j趟冒泡要进行_次元素间的比较.19.广义表(a , (a ,b) , d , e ,( (i ,j ) ,k ))的长度是 .20.一棵有n个叶结点的哈夫曼树,那么该树共有个结点.21.广义表的(a , (a ,b) , d , e ,( (i ,j ) ,k ))深度是.22.中序遍历可得到一个有序序列.23. 序列14,12,15,13,18,16,采用冒泡排序算法(升序),经一趟冒泡后,序列的结果24.广义表((a ,b) , d , e ,( (i ,j ) ,k ))的长度是 .三、综合题1 .设查找表为(7,15,21,22,40,58,68,80,88,89,120),元素的下标依次为1,2,3, (11)(1)画出对上述查找表进行折半查找所对应的判定树(树中结点用下标表示)(2)说明成功查找到元素40需要经过多少次比较(3)求在等概率条件下,成功查找的平均比较次数2.(1)设有数据集合{40, 29 , 7, 73, 101, 4, 55, 2 , 81, 92, 39},依次取集合中各数据构造一棵二叉排序树.(2)一组记录的关键字序列为(5, 8, 6, 3, 4 ,7),利用堆排序(堆顶元素是最小元素)的方法建立初始堆.(要求用完全二叉树表示)3.(1)一组记录的关键字序列为(47, 80, 57, 39, 41, 46),给出利用堆排序(堆顶元素是最小元素)的方法建立的初始堆(要求以完全二叉树描述).(2)对关键字序列(47,80,57,39,41,85)采用快速排序,给出以第一个关键字为分割元素,经过一次划分后的结果.(3) 如图3所示的二叉树,给出其前序遍历序列四、程序填空题1.Inorder(BT->right)⑶ dbeafc2.设线性表为(6, 10, 16, 4),以下程序用说明结构变量的方法建立单向链表,并输出链表中各结点中的数据. #define NULL 0void main(){NODE a,b,c,d,*head,*p;=6;=10;=16; 4. (1) 以2, 3, 4, 7, 8, 9作为叶结点的权,构造个关键字为分割元素,给出经过一次划分后结四、程序填空题1 .以下程序是中序遍历二叉树的递归算法的程存, 数据域data 为字符型,BT 指向根结点). 完成程序中空格局部 (树结构中左、 右指针域分别为left 和right , void Inorder (struct BTreeNode *BT)if(BT!=NULL){ Inorder(BT->left);} (2)利用上述程序对右图进行中序遍历,结果是 (3)(1) printf( "%C ,BT->data)树 给出上述哈夫曼树叶结点的哈夫曼编福.一组记录的关键字序列为(,利用快速排序,以第47, 29, 31 排序) d e图4=4; /*d 是尾结点*/head= (1);=&b;=&c;=&d;⑵;/*以上结束建表过程*/p=head; /*p 为工作指针,准备输出链表*/do{printf("%dn〞 ,(3));(4);}while((5));}2 .(1)&a⑵ d->next=NULL(3)p->data(4)p=p->next(5)p!=NULL3.以下冒泡法程序对存放在a[1] , a[2],……,a[n]中的序列进行排序,完成程序中的空格局部,其中n是元素个数,要求按升序排列.void bsort (NODE a[ ], int n){ NODE temp;int i,j,flag;for(j=1; (1);j++);{flag=0;for(i=1;(2);i++) if(a[i].key>a[i+1].key){flag=1;temp=a[i];(3)(4))if(flag= =0)break;)程序中flag的功能是33.(1) j<=n-1⑵ i<=n-j(3)a[i]=a[i+1](4)a[i+1]=temp(5)当某趟冒泡中没有出现交换那么已排好序,结束循环4.以下程序是中序遍历二叉树的递归算法的程序,完成程序中空格局部(树结构中左、右指针域分别为left和right ,数据域data为字符型,BT指向根结点)void Inorder (struct BTreeNode *BT){if(BT!=NULL){(1);⑵:Inorder(BT->right);})利用上述程序对右图进行遍历,结果是(3)4.(1)Inorder(BT->left)(2)printf( "%d ,BT->data)(3)bedafc综合练习二答案一、单项选择题I. C 2 , D 3 . A 4 . D 5 . C 6 . C 7 . A 8. A 9 . D 10 . BII. C 12 . B 13 . B 14 . B 15. D 16. A 17. A 18. A二、填空题1. a22.字符串的结束符3.物理结构(存储结构)4. p25. 146. 2i+17. 2i8. 139. 2n-110.图状11. 512. 1213n-114n+1151116 317.中序18. n-j19. 522.二叉排序树23, 12,14,13,15,16,1824. 43(1) 39 , 41 , 46, 80, 47, 57综合练习三一、单项选择题1.数据的存储结构包括数据元素的表示和〔〕.A .数据处理的方法B.数据元素的类型C . 相关算法D.数据元素间的关系的表示2.设有头指针为head的不带头结点的非空的单向循环链表,指针p指向其尾结点,要删除第一个结点,那么可利用下述语句head=head->next;和〔〕.A . p =head;B . p=NULL;C . p->next =head;D . head=p;3.树状结构中数据元素的位置之间存在〔〕的关系.A .每一个元素都有一个直接前驱和一个直接后继B . 一对一C .多对多D. 一对多4.以下说法正确的选项是〔〕.A.线性表的链式存储结构必须占用连续的存储空间B.一种逻辑结构可以有不同的存储结构C . 一种逻辑结构只能有唯一的存储结构D .线性表的顺序存储结构不必占用连续的存储空间5.设有一个长度为26的顺序表,要插入一个元素,并使它成为新表的第6个元素,需移动元素的个数为〔〕.A . 21B . 22C . 20D . 196.把数据存储到计算机中,并具体表达〔〕称为物理结构.A .数据的处理方法B.数据的性质C .数据的运算D.数据元素间的逻辑关系7.头指针为head的带头结点的单向循环链表,p所指向尾结点,要使该链表成为不带头结点的单向循环链表,可执行head=head->nex;和〔〕.A . p= head->nextBhead->next=pC head->next=p->next D.p->next=head;8.顺序表所具备的特点之一是〔〕.A .可以随机访问任一结点,不需要占用连续的存储空间C .插入元素的操作不需要移动元素D .删除元素的操作不需要移动元素9.元素111, 113, 115, 117按顺序依次进栈,那么该栈的不可能输出序列是〔〕〔进栈出栈可以交替进行〕.A . 117, 115, 113, 111B, 111, 113, 115, 117C . 117, 115, 111, 113D, 113, 111, 117, 11510.图状结构中数据元素的位置之间存在〔〕的关系.A. 一对一B. 一对多C.多对多D.每一个元素都有一个直接前驱和一个直接后继11.以下说法正确的选项是〔〕.A .栈的特点是先进先出B .栈的特点是先进后出C .队列的特点是先进后出12.元素20, 14, 16, 18按顺序依次进栈,那么该栈的不可能输出序列是〔〕〔进栈出栈可以交替进行〕.A . 18, 16, 14, 20B . 20, 14, 16, 18C . 18, 16, 20, 14D . 14, 20, 18, 16D.栈和队列的特点都是后进后出13. 设有一个20阶的对称矩阵A〔第一个元素为a〞〕,采用压缩存储的方式,将其下三角局部以行序为主序存储到一维数组B中〔数组下标从1开始〕,那么矩阵元素a6,2在一维数组B中的下标是〔〕.A. 21 B . 17 C . 28 D . 2314.设有一个12阶的对称矩阵A〔左上角第一个元素为a1,1〕,采用压缩存储的方式,将其下三角局部以行序为主序存储到一维数组B中〔数组下标从1开始〕,那么矩阵中元素a5,4在一维数组B中的下标是〔〕.A . 14B . 12C . 13D . 1115.设有串p1=" ABADF ,P2=" ABAFD , P3=" ABADFA ,P4=" ABAF,以下四个串中最大的是〔〕.A . p3B . p2C . plD . p416.设有一个长度为22的顺序表,要删除第8个元素需移动元素的个数为〔〕A . 25B . 14C . 15D . 2317.数组a经初始化char a[ ]= a English 〞 ; a[7]中存放的是〔〕.A.字符串的结束符B.字符hC. 、'h"D.变量h18.在一棵二叉树中,假设编号为5的结点存在右孩子,那么右孩子的顺序编号为〔〕A . 12B .9C .11D . 1019.设主串为“ ABcCDABcdEFaBC,以下模式串能与主串成功匹配的是〔〕.A. BcdB. BCdC. ABCD. Abc20. 一棵具有5层的完全二叉树,最后一层有4个结点,那么该树总共有〔〕个结点A . 14B. 15 C . 19 D . 1821.在一棵二叉树中,假设编号为i的结点存在左孩子,那么左孩子的顺序编号为〔〕A . 2i+1B. 2i-1 C . 2i D . 2i+222.如图1所示,假设从顶点a出发,按图的广度优先搜索法进行遍历,那么可能得到的一种顶点序列为〔〕.A . abcdfgeB . abcedfgC . acbfedgD . abcfgde24.字符串'' abcd321ABCD"的子串是〔图2〕A. 21ABC'B. abcABCDC. abcDD.、321a"25.线性表以〔〕方式存储,能进行折半查找.A .链接B .顺序C .关键字有序的顺序D .二叉树26.数组a经初始化char a[ ]= a English 〞 ;a[1]中存放的是〔〕A.字符nB.字符EC. 、'n"D.、、E"27 . 一棵具有38个结点的完全二叉树,最后一层有〔〕个结点.A . 7B. 5 C . 6 D .8 28 .如图3所示,假设从顶点a出发,按图的深度优先搜索法进行遍历,那么可能得到的一种顶点序列为〔A . abecdf Bacfebd C aebcfd D . aedfcb29.以下图的拓扑序列是()A . 5 2 3 4 6BC . 5 6 2 3 4D. 230.以下图的拓扑序列是)A. 5 2 3 4 6C. 5 6 4 2 33. n个元素进行冒泡法排序,第j趟冒泡要进行次元素间的比较.4.对稀疏矩阵进行压缩存储,矩阵中每个非零元素对应的三元组包括该元素的三项信息O5.中序遍历树可得到一个有序序列9 .广义表((a ,b) , d , e ,( (i ,j ) ,k ))(a ,b) , d , e ,( (i ,j ) ,k ))组表共有8,3,4,1,2,5,9,采用直接选择排序算法,当进行了两趟选择后,结果序列为40的顺序表,要删除第 8个元素需移动元素的个数为23 .有以下程序段char *p=a; int n=0;''0 ' ){ n++; p++;} 结果中,n 的值是24 .顺序表,,6 , 5, 1, 2, 4, 3, 8, 7经过一趟〔1,1〕归并后的结果序列为三、综合题1 .有一个长度为11的有序表(1, 2, 11, 15, 24, 28, 30, 56, 69, 70, 80),元素的下标依次为 6.在对 10 个记录的序列(9, 35,19, 77 ,2, 10 ,53, 45,27,68) 进行直接插入排序时,当把第6个记录10插入到有序表时,为寻找插入位置,元素间需比较 次.〔按升序排序〕7.待排序的序列为8,3,4,1,2,5,9, 采用直接选择排序算法,当进行了两趟选择后,结果序列为〔8. 字符串 a1= '、beijing ,a2 = bef ,a3='' beifang ,a4="befi "最小的10 . 10个元素进行冒下&法排序,,其中第5趟冒泡共需要进行 次元素间的比较.11. 广义表的〔c , a , 12. 遍历一棵二叉排序树可得到一个有序序列O13. 对稀疏矩阵进彳f 压缩存储 ,可采用三元组表,一个有 10行10列的稀疏矩阵 A 共有95个零元素,其相应的三元 14. 广义表(c , (a ,b,c) , ( d , e ,f ) , ( (i ,j ) ,k ))的长度是15. 在对一组记录 (50, 49, 97, 22, 16, 73, 65, 47, 88) 进行直接插入排序时,当把第7个记录65插入到有序 表时,为寻找插入位置需比较 次.16. 广义表的(c , (b,a ,b) , f , e ,( (i ,j ) ,k ))深度是17. 一棵有5个叶结点的哈夫曼树,该树中总共有 个结点.18. 序列 4,2,5 , 3 ,8, 6, 采用冒泡排序算法〔升序〕,经一趟冒泡后,结果序列是19. 设有一棵深度为 4的完全二叉树,第四层上有 5个结点,该树共有 个结点.〔根所在结点为第 1层〕.22.线性表用 方式存储可以随机访问.char a[]= English ";的长度是深度是个元素.20.待排序的序列为 21 .设有一个长度为 while( *p!=1,2,3,……,11 ,按折半查找对该表进行查找.(1)画出对上述查找表进行折半查找所对应的判定树.(2)说出成功查找到元素56,,需要依次经过与哪些元素的比较(3)说出不成功查找元素72,需要进行元素比较的次数2.设查找表为(1)画出对上述查找表进行折半查找所对应的判定树.(2)说明成功查找到元素90需要经过多少次比较(3)说明不成功查找元素82,依次与哪些元素进行了比较,需要经过多少次比较3.(1) 一组记录的关键字序列为(57, 90, 67, 50, 51, 56),利用堆排序(堆顶元素是最小元素)的方法建立初始堆(要求以完全二叉树描述).(2)对关键字序列(56,51,71,54,46,106)利用快速排序,以第一个关键字为分割元素,给出经过一次划分后结果.(3)一组记录的关键字序列为(60,47 , 80, 57, 39, 41 , 46,30 ),利用归并排序的方法,分别给出(1,1)归并、(2,2)归并、(4,4)归并的结果序列.4.(1)一组记录的关键字序列为(36, 69, 46, 28, 30, 35),给出利用堆排序(堆顶元素是最小元素)的方法建立的初始堆(要求以完全二叉树描述).⑵对关键字序列(36,69,46,28,30,74)采用快速排序,给出以第一个关键字为分割元素,经过一次划分后的结果.(3)设有数据集合(30,73,101,4,8,9,2,81),依次取集合中各数据构造一棵二叉排序树.四、程序填空题1.设线性表为(16, 20, 26, 24),以不带头结点的单向链表存储,链表头指针为head,以下程序的功能是输出链表中各结点中的数据域data.Struct node{int data;struct node *next;);typedef struct node NODE;#define NULL 0void main(){ NODE *head ,*p ;p=head; /*p 为工作指针*/do{printf("%dn",—⑴);(2)___ :}while(0);)四、程序填空题1.(1)p->data(2)p=p->next(3)p!=NULL2.以下函数在a[0]到a[n-1]中,用折半查找算法查找关键字等于k的记录,查找成功返回该记录的下标,失败时返回-1 ,完成程序中的空格typedef struct{ int key;}NODE;int Binary_Search(NODE a[ ], int n, int k){int low, mid, high;low=0;high=n-1;while( __(1)){ mid=(low+high)/2;if(a[mid].key==k)return __(2);else if (__(3))low=mid+1;else (4);}return -1;}设数组元素:a[0]=2 ; a[1]=5 a[2]=3; a[3]=4; a[4]=9; a[5]=6; a[6]=1; a[ 7]=10;按上述程序查找元素5,能否成功查到,说明理由=(5)2.⑴ low<=high(2)mid;(3)a[mid].key<k(4)high=mid-1;(5)不能,由于不是有序序列,不能用折半查找3.以下函数为直接选择排序算法,对a[1],a[2],…a[n]中的记录进行直接选择排序,完成程序中的空格typedef struct{ int key;}NODE;void selsort(NODE a[],int n){int i,j,k;NODE temp;for( i=1; i<=(1); i++) (k=i;for( j=i+1;j<=⑵ ; j++) _ if(a[j].key<a[k].key) (3);if( i!=k)(temp=a[i];(4) ______(5)L}}}3.(1)n-1(2)n(3)k=j(4)a[i]=a[k](5)a[k]=temp4.以下程序是后序遍历二叉树的递归算法的程序,完成程序中空格局部(树结构中左、右指针域分别为left和right ,数据域data为字符型,BT指向根结点)void Inorder (struct BTreeNode *BT)(if(BT!=NULL){一⑴.Inorder(BT->right);__(2) ; }利用上述程序对右图进行遍历,结果是=(3) ;图44.(1)Inorder(BT->left)(2)printf("%3 ,BT->data)(3)f,d,e,b,c,a综合练习三答案一、单项选择题1.D2.C3.D4. B5. A6.D7.D8. A 9 . C 10. C 11 . B 12 . C 13 . B 14 . A 15 . B 16. B 17 . A 18 . C 19 . A 20. C 21 . C 22. B 23.B 24. A 25 .C 26. A 27 . A 28 .D 29 . C 30. B二、填空题1.图状2.后出 3 . n-j4.行下标行下标数组元素5.二叉排序树6. 47. 1, 2, 4, 8, 3, 5, 98. a29. 410. 511.312.中序13. 514. 415. 316. 317.9三、综合题(30,39,41,46,47,57,60,80)4. (1) 28, 30, 35, 69, 36, 46⑵ 30 , 28, 36, 46, 69, 74,2,4,8,3,5,9 21 . 32 22.顺序 23. 7 24.(5, 6), 1,2), (3, 4) 8) 3. 281.11 69⑴ (2)28,69,30,563070(3)4 2.2456 80 ⑴ 5922 898 23 6981 1016 41 121 次⑵3 1189, 69,图5〔£〕。

数据结构(本科)期末综合练习一(单选题)

数据结构(本科)期末综合练习一(单选题)

数据结构(本科)期末综合练习一(单选题)单选题1.一个数组元素a[i] 与( )的表示等价。

A.*(a+i)B.a+iC.*a+iD.&a+i2.若需要利用形参直接访问实参,则应把形参变量说明为( )参数。

A.指针B.引用C.传值D.常值3.下面程序段的时间复杂度为( )。

for(int i=0; i<m; i++)for(int j=0; j<n; j++) a[i][j] = i*j;A.O(m2)B.O(n2)C.O(m*n)D.O(m+n)4.执行下面程序段时,执行S语句的次数为( )。

for(int i=1; i<=n; i++)for(int j=1; j<=i; j++) S;A.n2B.n2/2C.n(n+1)D.n(n+1)/25.下面算法的时间复杂度为( )。

int f(unsigned int n) {if(n==0 || n==1) return 1;else return n*f (n-1);}A.O(1)B.O(n)C.O(n2)D.O(n!)6.一种抽象数据类型包括数据和( )两个部分。

A.数据类型B.操作C.数据抽象D.类型说明7.当一个作为实际传递的对象占用的存储空间较大并可能被修改时,应最好说明为( ),以节省参数值的传输时间和存储参数的空间。

A.基本类型B.引用型C.指针型D.常值引用型8.当需要进行标准I/O操作时,则应在程序文件中包含iostream.h头文件,当需要进行文件I/O 操作时,则应在程序文件中包含( )头文件。

A.fstream.hB.stdlib.hC.iomanip.hD.string.h9.一个记录r理论上占有的存储空间的大小等于所有域类型长度之和,实际上占有的存储空间的大小即记录长度为( )。

A.所有域长度之和B.最大域所占字节长度C.任意一个域长度D.sizeof(r)的值10.输出一个二维数组b[m][n]中所有元素值的时间复杂度为( )。

数据结构期末考试题

数据结构期末考试题

数据结构期末考试题一、选择题(每题2分,共10分)1. 以下哪种数据结构是线性存储结构?A. 哈希表B. 二叉树C. 链表D. 图2. 在单链表中,删除节点的操作通常需要几个指针变量?A. 一个B. 两个C. 三个D. 四个3. 对于二叉搜索树,以下哪个操作的平均时间复杂度最低?A. 插入B. 删除C. 查找D. 遍历4. 在图的表示中,哪种方法可以有效地处理稠密图?A. 邻接矩阵B. 邻接表C. 边表D. 顶点表5. 快速排序算法的时间复杂度在最坏情况下是多少?A. O(n)B. O(nlogn)C. O(n^2)D. O(n^3)二、填空题(每题2分,共10分)1. 在数据结构中,___________ 是一种非线性数据结构,每个节点可以有两个或两个以上的子节点。

2. 栈和队列是两种常用的___________ 结构,它们分别支持后进先出和先进先出的特性。

3. 哈希表的___________ 越大,冲突的可能性越小。

4. 在图的遍历算法中,___________ 和___________ 是两种基本的遍历方法。

5. 归并排序是一种___________ 排序算法,它适用于大数据量的排序。

三、简答题(每题10分,共30分)1. 请简述数组和链表的区别,并举例说明它们各自的适用场景。

2. 什么是树的前序遍历、中序遍历和后序遍历?请用递归的方法实现二叉树的中序遍历。

3. 请解释深度优先搜索(DFS)和广度优先搜索(BFS)的基本原理,并比较它们的优缺点。

四、编程题(每题15分,共30分)1. 编写一个函数,实现对一个无向图的邻接矩阵表示,并完成对该图的深度优先搜索(DFS)遍历。

要求无向图的顶点和边数由用户输入,顶点用整数表示。

2. 设计并实现一个简单的文本编辑器,支持插入、删除和查找字符的功能。

要求使用链表来存储文本,并提供相应的操作函数。

五、综合题(20分)给定一组学生的成绩数据,要求设计一个成绩管理系统。

数据结构(本)期末综合练习

数据结构(本)期末综合练习

数据结构(本)期末综合练习综合练习一一、单项选择题1.设有头指针为head的带有头结点的非空单向循环链表, 指针p指向其尾结点, 要删除头结点,并使其仍为单向循环链表,则可利用下述语句head =head->next ;()。

A.p =head; B.p=NULL; C.p->next =head; D.head=p;2.在一个单链表中p指向结点a, q指向结点a的直接后继结点b,要删除结点b,可执行()。

A.p->next=q->next ; B.p=q->next;C.p->next=q; D.p->next=q;3. 以下说法不正确的是A. 线性表的链式存储结构不必占用连续的存储空间B.一种逻辑结构只能有唯一的存储结构C. 一种逻辑结构可以有不同的存储结构D.线性表的顺序存储结构必须占用连续的存储空间4.在一个单向链表中,在p所指结点之后插入一个s所指的结点时,可执行();和p->next=s;A.p= s; B. p->next=s->next;C.p=s->next; D. s->next=p->next;5.把数据存储到计算机中,并具体体现( )称为物理结构。

A. 数据元素间的逻辑关系B.数据的处理方法C.数据的性质D.数据的运算6.设有一个长度为23的顺序表,要删除第8个元素需移动元素的个数为()。

A.16 B.14 C.15 D.137.链表所具备的特点之一是()。

A.可以随机访问任一结点 B.需要占用连续的存储空间C.插入元素的操作不需要移动元素 D.删除元素的操作需要移动元素8.设一棵有8个叶结点的二叉树,度数为1的结点有3个,则该树共有()个结点。

A.20 B.18 C.17 D.169.图状结构中数据元素的位置之间存在()的关系。

A.一对一 B.多对多C.一对多 D.每一个元素都有一个直接前驱和一个直接后继10.一棵具有5层的完全二叉树,最后一层有4个结点,则该树总共有()个结点。

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

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

《数据结构》期末考试试题及答案一、选择题(每题2分,共20分)1. 下列哪种数据结构是线性结构?A. 栈B. 树C. 队列D. 图答案:A2. 在计算机科学中,什么是最基本的数据结构?A. 数组B. 链表C. 栈D. 树答案:C3. 下列哪种操作的时间复杂度是O(1)?A. 在链表中插入元素B. 在数组中查找元素C. 在树中删除节点D. 在图中寻找最短路径答案:B4. 下列哪种数据结构常常用于实现栈和队列?A. 数组B. 链表C. 树D. 图答案:A5. 下列哪种数据结构是有序的?A. 栈B. 队列C. 链表D. 图答案:C二、填空题(每题2分,共20分)1. 在数据结构中,栈是一种后进先出(____)的数据结构。

答案:线性表2. 队列是一种先进先出(____)的数据结构。

答案:线性表3. 链表是一种____数据结构,由一系列节点组成。

答案:非线性4. 二叉树是一种特殊的树,它的每个节点最多有两个____。

答案:子节点5. 哈希表是通过____函数将关键字映射到表中的位置来访问数据。

答案:哈希三、判断题(每题2分,共20分)1. 树是一种线性结构。

()答案:错误2. 链表的插入和删除操作时间复杂度都是O(1)。

()答案:错误3. 图是一种线性结构。

()答案:错误4. 哈希表是一种基于顺序结构的的数据结构。

()答案:错误5. 在数据结构中,时间复杂度O(n)表示算法随着输入规模的增加而线性增长。

()答案:正确四、简答题(每题10分,共30分)1. 请简述栈和队列的特点和应用场景。

答案:栈是一种后进先出(LIFO)的数据结构,应用场景包括函数调用栈、表达式求值等。

队列是一种先进先出(FIFO)的数据结构,应用场景包括任务队列、缓冲区等。

2. 请简述链表的优缺点。

答案:链表的优点包括动态扩容、插入和删除操作时间复杂度为O(1)、可以方便地实现各种复杂数据结构。

缺点包括占用内存空间较大、不如数组支持随机访问。

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

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

数据结构期末考试题及答案一、单项选择题(每题2分,共20分)1. 在数据结构中,算法的时间复杂度是指()。

A. 算法程序的长度B. 算法执行时所需要的基本运算次数C. 算法程序中的语句数D. 算法程序中的指令数答案:B2. 线性表的顺序存储结构和链式存储结构相比,其主要优点是()。

A. 插入和删除操作快B. 存储密度高C. 存储空间可以动态申请D. 存储空间可以预先分配答案:D3. 在一个长度为n的顺序表中,采用二分查找法查找第k小的元素,最坏情况下需要比较的次数是()。

A. nB. n/2C. log2(n+1)D. log2n答案:D4. 一个栈的入栈序列为1, 2, 3, 4, 5,下列序列中哪一个不可能是栈的输出序列()。

A. 5, 4, 3, 2, 1B. 3, 2, 4, 1, 5C. 5, 4, 2, 3, 1D. 1, 2, 5, 3, 4答案:D5. 在二叉树的前序遍历、中序遍历和后序遍历中,根节点总是()。

A. 第一个被访问B. 第二个被访问C. 第三个被访问D. 最后一个被访问答案:A6. 在一个有n个顶点的无向图中,其边的最大数量是()。

A. n(n-1)/2B. n(n+1)/2C. n^2D. 2n答案:A7. 哈夫曼编码是一种()。

A. 静态编码B. 动态编码C. 无损编码D. 有损编码答案:C8. 一个图的邻接矩阵表示法中,若顶点i到顶点j有一条边,则矩阵的第i行第j列的元素为()。

A. 1B. 0C. 边的权重D. 顶点j的度数答案:C9. 在数据库中,关系模式R(U, F),其中U={A, B, C, D},F={(A, B)→C, C→D},下列哪个关系模式是R的候选键()。

A. {A, B}B. {A, C}C. {B, C}D. {C, D}答案:A10. 快速排序算法的平均时间复杂度是()。

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

数据结构期末习题集及答案

数据结构期末习题集及答案

数据结构期末习题集及答案第一章概论一、选择题1、研究数据结构就是研究( D )。

A. 数据的逻辑结构B. 数据的存储结构C. 数据的逻辑结构和存储结构D. 数据的逻辑结构、存储结构及其基本操作2、算法分析的两个主要方面是( A )。

A. 空间复杂度和时间复杂度B. 正确性和简单性C. 可读性和文档性D. 数据复杂性和程序复杂性3、具有线性结构的数据结构是( D )。

A. 图B. 树C. 广义表D. 栈4、计算机中的算法指的是解决某一个问题的有限运算序列,它必须具备输入、输出、( B )等5个特性。

A. 可执行性、可移植性和可扩充性B. 可执行性、有穷性和确定性C. 确定性、有穷性和稳定性D. 易读性、稳定性和确定性5、下面程序段的时间复杂度是( C )。

fori0;im;i++forj0;jn;j++a[i][j]i*j;A. Om2B. On2C. Om*nD. Om+n6、算法是( D )。

A. 计算机程序B. 解决问题的计算方法C. 排序算法D. 解决问题的有限运算序列7、某算法的语句执行频度为(3n+nlog2n+n2+8),其时间复杂度表示( C )。

A. OnB. Onlog2nC. On2D. Olog2n8、下面程序段的时间复杂度为( C )。

i1;whileinii*3;A. OnB. O3nC. Olog3nD. On39、数据结构是一门研究非数值计算的程序设计问题中计算机的数据元素以及它们之间的( B )和运算等的学科。

A. 结构B. 关系C. 运算D. 算法10、下面程序段的时间复杂度是( C )。

is0;whilesni++;s+i;A. OnB. On2C. Olog2nD. On311、抽象数据类型的三个组成部分分别为( A )。

A. 数据对象、数据关系和基本操作B. 数据元素、逻辑结构和存储结构C. 数据项、数据元素和数据类型D. 数据元素、数据结构和数据类型12、通常从正确性、易读性、健壮性、高效性等4个方面评价算法的质量,以下解释错误的是( A )。

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

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

数据结构期末考试试题及答案一、选择题1. 以下哪种数据结构是线性存储结构?A. 树B. 图C. 链表D. 哈希表答案:C2. 在二叉搜索树中,若删除一个节点,则需要进行以下哪些操作?A. 仅删除操作B. 删除操作和调整树结构操作C. 插入操作D. 忽略操作答案:B3. 快速排序算法的时间复杂度在最坏情况下是:A. O(log n)B. O(n)C. O(n log n)D. O(n^2)答案:D4. 下面哪个排序算法适用于大数据量的排序?A. 冒泡排序B. 快速排序C. 插入排序D. 归并排序答案:D5. 哈夫曼树是一种特殊的:A. 二叉树B. 多叉树C. 哈希表D. 图答案:A二、填空题1. 链表的基本操作包括__________、__________、__________和__________。

答案:创建、插入、删除、查找2. 栈是一种后进先出(LIFO)的数据结构,其添加元素的操作称为__________,移除元素的操作称为__________。

答案:push、pop3. 在图的遍历算法中,按照遍历方向的不同,可以分为__________和__________。

答案:深度优先遍历、广度优先遍历4. 红黑树是一种自平衡的__________。

答案:二叉搜索树4. 散列表(哈希表)的主要优点是__________。

答案:查找速度快三、简答题1. 请简述数组和链表的区别及各自的优缺点。

答案:数组是一种顺序存储结构,通过索引直接访问元素,访问速度快,但是插入和删除操作需要移动大量元素,效率较低。

链表是一种非顺序存储结构,通过指针连接元素,插入和删除操作只需要改变指针,效率较高,但是访问元素需要从头开始遍历,速度较慢。

2. 请解释二分查找法的工作原理及其适用条件。

答案:二分查找法是一种在有序数组中查找特定元素的算法。

工作原理是将数组分为两部分,判断目标值与中间元素的大小关系,然后在相应的一半中继续查找,重复此过程,直到找到目标值或范围缩小到无法再分。

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

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

数据结构期末考试题及答案一、单项选择题(每题3分,共30分)1. 在数据结构中,最基本的数据结构是()。

A. 线性结构B. 树形结构C. 图形结构D. 非线性结构答案:A2. 栈是一种特殊的线性表,其特点是()。

A. 先进先出B. 先进后出C. 后进先出D. 后进后出答案:C3. 在二叉树中,度为2的结点数为n,度为1的结点数为m,度为0的结点数为p,则m的值为()。

A. n-1B. n+1C. p-1D. p+1答案:A4. 哈希表的构造方式是()。

A. 线性结构B. 树形结构C. 链式结构D. 索引结构答案:D5. 在图的遍历过程中,深度优先搜索算法采用的是()。

A. 队列B. 栈C. 链表D. 树答案:B6. 快速排序算法的时间复杂度在最坏情况下是()。

A. O(n)B. O(nlogn)C. O(n^2)D. O(2^n)答案:C7. 以下哪个排序算法是不稳定的排序算法()。

A. 冒泡排序B. 快速排序C. 归并排序D. 堆排序答案:B8. 在数据库中,索引通常采用哪种数据结构()。

A. 线性表B. 树形结构C. 图形结构D. 散列表答案:B9. 以下哪个不是二叉搜索树的性质()。

A. 左子树上所有结点的值都小于它的根结点的值B. 右子树上所有结点的值都大于它的根结点的值C. 左、右子树也分别为二叉搜索树D. 所有结点的值都相等答案:D10. 在图的表示方法中,邻接矩阵适用于表示()。

A. 稠密图B. 稀疏图C. 有向图D. 无向图答案:A二、填空题(每题4分,共20分)1. 在数据结构中,一个算法的空间复杂度是指算法在执行过程中需要的___________。

答案:存储空间2. 堆排序中,调整堆的过程称为___________。

答案:堆化3. 在图的遍历中,广度优先搜索使用的辅助数据结构是___________。

答案:队列4. 一个长度为n的链表,删除第i个元素的时间复杂度是___________。

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

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

数据结构期末考试题及答案一、单项选择题(每题2分,共20分)1. 在数据结构中,线性结构的特点是()。

A. 元素之间存在一对一关系B. 元素之间存在一对多关系C. 元素之间存在多对多关系D. 元素之间存在一对一对关系答案:A2. 栈(Stack)是一种特殊的线性表,其特点是()。

A. 只能在一端进行插入和删除操作B. 只能在一端进行插入操作,另一端进行删除操作C. 两端都可以进行插入和删除操作D. 只能在一端进行删除操作答案:B3. 在二叉树中,若某结点的左子树非空,则其左子树中任一结点的值()。

A. 小于该结点的值B. 大于该结点的值C. 等于该结点的值D. 与该结点的值无关答案:A4. 哈希表的冲突解决方法中,开放定址法的基本思想是()。

A. 将发生冲突的元素插入到表的末尾B. 将发生冲突的元素插入到表的首部C. 将发生冲突的元素插入到表的任意位置D. 将发生冲突的元素插入到表的下一个空位答案:D5. 快速排序算法的时间复杂度在最坏情况下是()。

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

A. O(nlogn)B. O(n^2)C. O(n)D. O(1)答案:A7. 在图的遍历中,深度优先搜索(DFS)使用的是()。

A. 队列B. 栈C. 链表D. 数组答案:B8. 广度优先搜索(BFS)使用的是()。

A. 队列B. 栈C. 链表D. 数组答案:A9. 在图的表示方法中,邻接矩阵适用于表示()。

A. 稀疏图B. 稠密图C. 无向图D. 有向图答案:B10. 最小生成树的Kruskal算法中,边的选取是基于()。

A. 边的权重B. 边的编号C. 边的长度D. 边的类型答案:A二、填空题(每题2分,共20分)1. 在数据结构中,一个算法的空间复杂度是指算法执行过程中需要的___________。

答案:存储空间的大小2. 顺序表的存储结构是使用___________连续的存储单元依次存储数据元素。

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

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

数据结构期末测试题及答案一、选择题(每题2分,共40分)1. 数据结构是指()。

A. 存储数据的方式和方法B. 描述数据和操作数据的方式和方法C. 组织数据和操作数据的方式和方法D. 分析数据和操作数据的方式和方法答案:C2. 在数据结构中,数组是()。

A. 存储在连续内存空间中的元素集合B. 存储在非连续内存空间中的元素集合C. 存储在链表中的元素集合D. 存储在哈希表中的元素集合答案:A3. 下列哪种数据结构的查找操作时间复杂度一定是O(1)?A. 数组B. 链表C. 栈D. 哈希表答案:D4. 假设有一个长度为n的有序数组,采用二分法查找元素的时间复杂度是()。

A. O(1)B. O(log n)C. O(n)D. O(n log n)答案:B5. 在数据结构中,栈是一种()。

A. 先进先出的数据结构B. 后进先出的数据结构C. 可以在任意位置插入和删除元素的数据结构D. 可以动态扩展和缩小的数据结构答案:B二、填空题(每题5分,共40分)1. 链表是一种()数据结构。

答案:线性2. 在二叉树中,一个节点的子节点个数最多为()。

答案:23. 在图的表示中,邻接矩阵法中用1表示两个顶点之间存在边,用0表示不存在边,这种方法适用于边的数量相对较()的图。

答案:少4. 在树的遍历中,先序遍历是指先访问()节点,然后再分别先序遍历它的左子树和右子树。

答案:根5. 哈希表通过()将键映射到值。

答案:哈希函数三、简答题(每题10分,共20分)1. 请简要介绍栈和队列的特点和用途。

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

栈常用于实现程序调用的过程,如函数调用、表达式求值等。

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

队列常用于实现排队、任务调度等场景。

2. 请简述二叉搜索树的特点和应用场景。

二叉搜索树是一种有序树结构,每个节点的左子树的值都小于该节点的值,右子树的值都大于该节点的值。

数据结构期末综合复习题

数据结构期末综合复习题

一、单项选择题1.数据结构是指(A )。

A.数据元素的组织形式B.数据类型C.数据存储结构D.数据定义2.数据在计算机存储器内表示时,物理地址与逻辑地址不相同的,称之为( C )。

A.存储结构B.逻辑结构C.链式存储结构D.顺序存储结构3.树形结构是数据元素之间存在一种( D)。

A.一对一关系B.多对多关系C.多对一关系D.一对多关系4.在一个长度为n的顺序表中删除第i个元素(0<=i<=n)时,需向前移动A个元素。

A.n-i B.n-i+l C.n-i-1 D.I5.在双向循环链表中,在p所指的结点之后插入s指针所指的结点,其操作是__D__。

A. p->next=s; s->prior=p;p->next->prior=s; s->next=p->next;B. s->prior=p; s->next=p->next;p->next=s; p->next->prior=s;C. p->next=s; p->next->prior=s;s->prior=p; s->next=p->next;D. s->prior=p; s->next=p->next;p->next->prior=s; p->next=s;6.设单链表中指针p指向结点m,若要删除m之后的结点(若存在),则需修改指针的操作为_____A___。

A.p->next=p->next->next; B.p=p->next;C.p=p->next->next; D.p->next=p;7.在一个长度为n的顺序表中向第i个元素(0< i<n+l )之前插入一个新元素时,需向后移动___B___个元素。

A.n-i B.n-i+l C.n-i-1 D.i8.在一个单链表中,已知q结点是p结点的前趋结点,若在q和p之间插入s结点,则须执行BA.s->next=p->next; p->next=sB.q->next=s; s->next=pC.p->next=s->next; s->next=pD.p->next=s; s->next=q9.在一个具有n个结点的有序单链表中插入一个新结点并保持该表有序的时间复杂度是____B___。

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

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

数据结构期末考试题及答案一、选择题1. 以下哪种数据结构是线性存储结构?A. 树B. 图C. 链表D. 哈希表答案:C2. 栈和队列的共同特点是:A. 只能在一端进行插入和删除操作B. 插入和删除操作在不同的两端进行C. 插入和删除操作在同一端进行D. 没有共同点答案:B3. 在二叉搜索树中,若要查找值为x的节点,当发现一个节点的值大于x时,应该:A. 在该节点的左子树中查找B. 在该节点的右子树中查找C. 停止查找D. 随机查找答案:A4. 快速排序算法的时间复杂度为:A. O(log n)B. O(n log n)C. O(n^2)D. O(1)答案:B5. 下面哪种排序算法适用于大数据量的排序?A. 冒泡排序B. 插入排序C. 快速排序D. 选择排序答案:C二、填空题1. 链表的基本操作包括________、________、________和________。

答案:创建、插入、删除、查找2. 在图的表示中,邻接矩阵法的主要缺点是________,而邻接表法的主要缺点是________。

答案:空间消耗大、查询效率低3. 哈夫曼树是一种基于________的最优二叉树,广泛应用于数据压缩和编码。

答案:字符频率4. 红黑树是一种自平衡的二叉搜索树,它的插入和删除操作能保证最坏情况下的查找时间复杂度对数级,具体为________。

答案:O(log n)5. 散列表(哈希表)解决冲突的方法主要有开放定址法、链地址法和________。

答案:双重散列法三、简答题1. 请简述数组和链表的区别及各自的优缺点。

答案:数组是一种顺序存储结构,它的特点是通过索引直接访问元素,访问速度快,但是大小固定,不便于动态扩展。

链表是非连续的存储结构,元素通过指针连接,可以动态地插入和删除元素,但是访问元素需要从头开始遍历,速度较慢。

2. 描述二分查找的算法过程及其时间复杂度。

答案:二分查找是一种在有序数组中查找特定元素的算法。

数据结构(本)期末综合练习

数据结构(本)期末综合练习

数据结构(本)期末综合练习综合练习一一、单项选择题1.对稀疏矩阵进行压缩存储,可采用三元组表,一个10 行8列的稀疏矩阵A共有73个零元素,其相应的三元组表共有( C )个元素。

A.8 B.80 C.7 D.102. 对稀疏矩阵进行压缩存储,可采用三元组表,一个10 行8列的稀疏矩阵A,其相应的三元组表共有6个元素,矩阵A共有( C )个零元素。

A.8 B.72 C.74 D.103.字符串( A )是“abcd321ABCD”的子串。

A. “21AB”B. “abcD”C. “aBCD”D. “321a”4. 程序段char a[ ]=“abdcacdef”;char *p=a; int n=0;while( *p!=‘\0’){ n++; p++;} 结果中,n的值是( D )。

A. 6B.8C. 7D.95.栈和队列的共同特点是( A )。

A.都是操作受限的线性结构B.元素都可以随机进出C.都是先进后出D.都是先进先出6. 10,6,2,1按顺序依次进栈,该队列的可能输出序列是( A )。

(进栈出栈可以交替进行)。

A.6,10,1,2 B.2,10,6,1 C.6,1,10,1 D.1,6,10,27. 在一个链队中,假设f和r分别为队头和队尾指针,p指向一个新结点,要为结点p所指结点赋值x,并入队的运算为p->data=x; p->next=NULL;(B )。

A. f->next=p; f=p; B.r->next=p;r=p;C.r=p; p->next=r; D.p->next=f;f=p;8. 对一个栈顶指针为top的链栈进行出栈操作,用变量e保存栈顶元素的值,则执行( B )。

A.e= top->next; top->data=e;B.e=top->data; top=top->next;C.top=top->next; e=top->data;D.top=top->next; e=data;9. 数据结构中,与所使用的计算机无关的是数据的( A ) 结构。

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

数据结构(本)期末综合练习综合练习一一、单项选择题1.设有头指针为head的带有头结点的非空单向循环链表, 指针p指向其尾结点, 要删除头结点,并使其仍为单向循环链表,则可利用下述语句head =head->next ;()。

A.p =head; B.p=NULL; C.p->next =head; D.head=p;2.在一个单链表中p指向结点a, q指向结点a的直接后继结点b,要删除结点b,可执行()。

A.p->next=q->next ; B.p=q->next;C.p->next=q; D.p->next=q;3. 以下说法不正确的是A. 线性表的链式存储结构不必占用连续的存储空间B.一种逻辑结构只能有唯一的存储结构C. 一种逻辑结构可以有不同的存储结构D.线性表的顺序存储结构必须占用连续的存储空间4.在一个单向链表中,在p所指结点之后插入一个s所指的结点时,可执行();和p->next=s;A.p= s; B. p->next=s->next;C.p=s->next; D. s->next=p->next;5.把数据存储到计算机中,并具体体现( )称为物理结构。

A. 数据元素间的逻辑关系B.数据的处理方法C.数据的性质D.数据的运算6.设有一个长度为23的顺序表,要删除第8个元素需移动元素的个数为()。

A.16 B.14 C.15 D.137.链表所具备的特点之一是()。

A.可以随机访问任一结点 B.需要占用连续的存储空间C.插入元素的操作不需要移动元素 D.删除元素的操作需要移动元素8.设一棵有8个叶结点的二叉树,度数为1的结点有3个,则该树共有()个结点。

A.20 B.18 C.17 D.169.图状结构中数据元素的位置之间存在()的关系。

A.一对一 B.多对多C.一对多 D.每一个元素都有一个直接前驱和一个直接后继10.一棵具有5层的完全二叉树,最后一层有4个结点,则该树总共有()个结点。

A.14 B.15 C.19 D.1811.元素15,9,11,13按顺序依次进栈,则该栈的不可能输出序列是()(进栈出栈可以交替进行)。

A.13,11,9,15 B.15,9,11,13C.13,11,15,9 D.9, 15,13,1112.设主串为“FABcCDABcdEFaBc”,以下模式串能与主串成功匹配的是()。

A. EFaBcB. ABCdEC. DABCC D .FAbcC13.设有一个14阶的对称矩阵A(第一个元素为a1,1),采用压缩存储的方式,将其下三角部分以行序为主序存储到一维数组B中(数组下标从1开始),则矩阵中元素a4,3在一维数组B中的下标是()。

A.9 B.10 C.11 D.814.元素111,113,115,117按顺序依次进栈,则该栈的不可能输出序列是()(进栈出栈可以交替进行)。

A.117,115,113,111 B.111,113,115,117 C.113,111,117,115 D.117,115,111,11315.在一棵二叉树中,若编号为8的结点存在右孩子,则右孩子的顺序编号为()。

A.18 B.16 C.15 D.1716.以下说法不正确的是()。

A.栈和队列都是线性结构 B.栈的特点是后进先出C. 栈和队列的特点都是先进后出 D.队列的特点是先进先出17.设一棵哈夫曼树共有14个非叶结点,则该树总共有()个结点。

A.29 C.30 D.2818.设有一个15阶的对称矩阵A(第一个元素为a1,1),采用压缩存储的方式,将其下三角部分以行序为主序存储到一维数组B中(数组下标从1开始),则矩阵中元素a4,2在一维数组B中的下标是()。

A.9 B.8 C.7 D.1019.如图1所示的一个图,若从顶点a出发,按深度优先搜索法进行遍历,则可能得到的一种顶点序列为()。

A.abecdf B.acfebd C.aebcfd D.aedbfc 20.如图2A..aedfcb二、填空题1.2. 序列________。

3. ________4. 对16个元素的序列用冒泡排法进行排序,通常需要进行趟冒泡。

图25.对稀疏矩阵进行压缩存储,矩阵中每个非零元素对应的三元组包括该元素的三项信息是____ ___。

6. 对9个元素的一组记录(58,35,93,20,12,78,56,41,79)进行直接插入排序(由小到大排序) ,当把第7个记录56插入有序表,为寻找插入位置需比较________次。

7.在对11个记录的序列(12,35, 9, 7 ,2, 11 ,56 , 95 ,37,58 ,60)进行直接插入排序时,当把第6个记录11 插入到有序表时,为寻找插入位置,元素间需比较_________次。

(由小到大排列)8.结构中的数据元素存在一对多的关系称为________结构。

9.哈希函数是记录关键字的值与该记录___ ___之间所构造的对应关系。

10.设有一棵深度为5的完全二叉树,第5层上有3个结点,该树共有_______个结点。

(根所在结点为第1层)11.20个元素进行冒泡法排序,通常需要进行19趟冒泡 ,其中第10趟冒泡共需要进行____ ____次元素间的比较。

12.一棵二叉树中每一个非叶结点的度数都为2,共有10个非叶结点,则该树共有_______ 个结点。

13.一棵有19个结点的二叉树,采用链式结构存储,该树结构中有 _____ 个指针域为空。

14. 序列3,1,7,18,6,9,13,12经一趟归并排序的结果为__ __ __。

15.中序遍历一棵 ________树可得到一个有序序列。

16.一棵有16个叶结点的哈夫曼树,则该树共有_______个非叶结点。

17.二叉排序树插入操作中,新插入的结点总是以树的________ 结点被插入的18.________遍历二叉排序树可得到一个有序序列。

19. 广义表的( a , (d,a ,b) , h , (e ,( (i ,j ) ,k )) )深度是________ 。

20. 广义表( f , h , (a ,b, d, c) , d , e ,( (i ,j ) ,k ) )的长度是______ __。

21. 序列4 , 2 , 5 , 3 , 8 , 6 , 7, 9,采用归并排序算法(升序),经一趟归并后,序列的结果 _______ _。

22. 广义表的( h ,c,g, a , (a ,b) , d , e ,( (i ,j ) ,k ) )深度是__ _____。

23. 字符串a1=〝teijing〞, a2 =〝tef〞 , a3= 〝teifang〞, a4=“tefi〞最小的是 ________。

24.设有串p1=”ABADF”,P2=”ABAFD”,P3=”ABADFA”P4=”ABAF”, 四个串中最小的是 ________ 。

三、综合题1.设查找表为(1)画出对上述查找表进行折半查找所对应的判定树(树中结点用下标表示)(2)说明成功查找到元素86需要经过多少次比较?(3)求在等概率条件下,成功查找的平均比较次数?2.(1)设有数据集合{50,39,17,83,111,14,65,13,91,102,49},依次取集合中各数据构造一棵二叉排序树。

(2) 一组记录的关键字序列为(6,9,7,4,5,8),利用堆排序(堆顶元素是最小元素)的方法建立初始堆。

(要求用完全二叉树表示)3.(1) 一组记录的关键字序列为(26,59,36,18,20,25),给出利用堆排序(堆顶元素是最小元素)的方法建立的初始堆(要求以完全二叉树描述)。

(2) 对关键字序列(26,59,36,18,20,64)采用快速排序,给出以第一个关键字为分割元素,经过一次划分后的结果。

4. (1) 如下表为一个长度为10的有序表,给出按折半查找对该表进行查找的判定树(2) 按折半查找对该表进行查找,求在等概率情况下查找成功的平均比较次数。

为了成功查找72 ,给出元素的比较次数。

5.(1) 以1,2,3 ,6,7,8作为叶结点的权,构造一Array棵哈夫曼树(2) 给出具有相应权重值的叶结点的哈夫曼编码。

四、程序填空题1.以下函数在a[0]到a[n-1]中,用折半查找算法查找关键字等于k的记录,查找成功返回该记录的下标,失败时返回-1,完成程序中的空格typedef struct{ int key;……}NODE;int Binary_Search(NODE a[ ], int n, int k){int low, mid, high;low=0;{mid=(__(2)______)if(a[mid].key==k)return __(3)______ ;else if (__(4)______)low=mid+1;else __(5)______;}return -1}1.(1) low<=high(2)( low+high)/2(3) mid;(4) a[mid].key<k(5) high=mid-1;2.设线性表以不带头结点的单向链表存储,链表头指针为head,以下程序的功能是输出链表中各结点中的数据域data。

完成程序中空格部分。

#define NULL 0void main( ){ NODE *head ,*p ;p=head; /*p为工作指针*/do{printf(“%d\n”, ___(1)_____);}2.(1)p->data (2)p=p->next (3)p!=NULL3.以下程序是前序遍历二叉树的递归算法的程序,完成程序中空格部分(树结构中左、右指针域分别为left和right,数据域data为字符型,BT指向根结点)。

void Inorder (struct BTreeNode *BT){if(BT!=NULL){__(1)______;__(2)______;Inorder(BT-- >right);}}利用上述程序对右图进行前序遍历,结果是__(3)______;(1) printf((2)(3)4.以下程序是后序遍历二叉树的递归算法的程序,完成程序中空格部分(树结构中左、右指针域分别为left和right,数据域data为字符型,BT指向根结点)。

完成程序中空格部分。

void Inorder (struct BTreeNode *BT){if( BT!=NULL){Inorder(BT->left);___(1)________(2)_____}4.(1) Inorder(BT->right) (2) printf(“%c”,BT->data)5. 顺序查找算法如下, 完成程序中空格部分。

相关文档
最新文档