数据结构综合练习题

合集下载

《数据结构》综合练习

《数据结构》综合练习

综合练习一、单项选择题1.数据在计算机存储器内表示时,物理地址与逻辑地址不相同的,称之为(C ).A.存储结构B。

逻辑结构C.链式存储结构D。

顺序存储结构2.设语句x++的时间是单位时间,则以下语句的时间复杂度为( B ).for(i=1; i<=n; i++)for(j=i;j〈=n;j++)x++;A。

O(1) B.O(2n)C。

O(n) D.O(3n)3.链式存储结构的最大优点是( D )。

A。

便于随机存取B。

存储密度高C.无需预分配空间D.便于进行插入和删除操作4.假设在顺序表{a0,a1,……,a n-1}中,每一个数据元素所占的存储单元的数目为4,且第0个数据元素的存储地址为100,则第7个数据元素的存储地址是( D ).A。

106 B. 107 C。

124 D.1285.在线性表中若经常要存取第i个数据元素及其前趋,则宜采用( A )存储方式.A.顺序表B. 带头结点的单链表C。

不带头结点的单链表 D. 循环单链表6.在链表中若经常要删除表中最后一个结点或在最后一个结点之后插入一个新结点,则宜采用( C )存储方式。

A.顺序表B。

用头指针标识的循环单链表C。

用尾指针标识的循环单链表D。

双向链表7.在一个含有n个结点的有序单链表中插入一个新结点,使单链表仍然保持有序的算法的时间复杂度是( C )。

O(1) B。

O(log2n) C。

O(n) D。

O(n2)8.要将一个顺序表{a0,a1,……,a n—1}中第i个数据元素a i(0≤i≤n—1)删除,需要移动( B )个数据元素。

A.i B。

n—i-1 C. n-i D. n—i+19.在栈中存取数据的原则是( B )。

A。

先进先出 B。

先进后出C。

后进后出 D。

没有限制10.若将整数1、2、3、4依次进栈,则不可能得到的出栈序列是( D )。

A.1234 B. 1324 C. 4321 D. 142311.在链栈中,进行出栈操作时(B )。

数据结构(本)期末综合练习(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个元素需移动元素的个数为()。

数据结构综合练习题

数据结构综合练习题

数据结构综合练习题一、简答题:1、简述堆栈和队列两种数据类型的异同点。

2、什么静态查找表和动态查找表。

3、试比较顺序存储结构和链式存储结构的优缺点。

在什么情况下用顺序表比链表好?4、分析稳定的排序和不稳定的排序方法。

5、图的存储结构有哪些?6、简述度为2的树与二叉树的区别。

二、画图题1、请把下图的树的图形应用二叉链表表示法画出来。

2、已知某二叉树先序序列ABCDEFG,中序序列CBEDAFG,试画出这棵二叉树。

3、根据给定的连通网图,采用Prim算法思想画出下图的最小生成树。

4、电文中字符A、B、C、D、E、F、G出现的概率分别为5%,25%,7%,8%,14%,23%,3%,11%;试设计对应Huffman树并给出各字符的前缀编码。

5、如下图表示的树的结构。

将此树转换成二叉树6、根据下图所示的AOE网,试求解其关键路径。

7、请对下面的无向带权图:(1)写出它的邻接矩阵。

(2)按普里姆算法求其最小生成树。

8对于右图所示的树: (1) 写出先根遍历得到的结点序列; (2) 写出按层遍历得到的结点序列;mlkjihe gfb dca三、程序分析写结果:1、写出下列程序段的输出结果(栈的元素类型为char;字符型)。

V oid main(){Stack S;Char x,y;InitStack(S);X=‘c’; y=‘k’;Push(S,x); Push(S,’a’); Push(S,y);Pop(S,x); Push(S,’t’); Push(S,x);Pop(S,x); Push(S,’s’);While(!StackEmpty(S)){Pop(S,y); printf(y); };Printf(x);}2、写出下列程序段的输出结果(队列的元素类型为char;字符型)。

V oid main(){Queue Q;InitQueue(Q);char x=‘e’,y=‘c’;EnQueue(Q,’h’); EnQueue(Q,’r’); EnQueue(Q,y);DeQueue(Q,x); EnQueue(Q,x);DeQueue(Q,x); EnQueue(Q,’a’);while(!QueueEmpty(Q)){ DeQueue(Q,y); printf(y); }printf(x);}。

数据结构综合练习及参考答案

数据结构综合练习及参考答案

《数据结构》(01111、01211)作业题(一)一、判断题(下列各题,你认为正确的,请在前面的括号内打√,错误的打×。

每题1分,共10分)1、(√)2、(√)3、(√)4、(√)5、(√)6、(╳)7、(√)8、(√)9、(╳)10、(√)(√)1. 数据的存贮结构是数据的逻辑结构的存贮映象。

(√)2. 用顺序表来存储线性表时,不需要另外开辟空间来保存数据元素之间的相互关系。

(√)3. 非线性结构中,至少存在一个元素不止一个直接前趋或不止一个直接后继。

(√)4. 树的最大特点是层次结构。

(√)5. 队列的特点是先进先出。

(╳)6. 图的最小生成树是唯一的。

(√)7. 线性表是广义表的特殊形式。

(√)8. 后序序列和中序序列能唯一确定一棵二叉树。

(╳)9. 散列表是一种链式存贮结构。

(√)10. 快速排序并非在任何情况下都比其它排序方法速度快。

二、填空题(每空2分,共20分)1.数据的存贮结构的四种形式为存贮、存贮、存贮和存贮。

2.所有插入和删除都在表的一端进行的线性表称为。

3.n个结点的完全二叉树,其深度h= 。

4.对于顺序循环队列Q[M],下标从0到M-1,头尾指针分别为F和R,入队时,队尾指针循环加1可表示为R= 。

5.散列法既是一种查找方法,又是一种方法。

6.n个顶点的有向完全图具有条弧。

7.n个元素的顺序查找的平均查找长度为。

三、单选题(本题的每一备选答案中,只有一个是正确的,请把你认为正确的答案的题号填入题干的括号内,多选不给分,每小题3分,共15分)。

1.若进栈序列为1,2,3,4,则不可能得到的出栈序列是()(1)3,2,1,4 (2)3,2,4,1 (3)4,2,3,1 (4) 2,3,4,12.对于下列二叉树,其后序序列为()(1)ABDECFG (2)DBEAFCG (3)DEBFGCA (4)GFCEBDA3.对于下列AOV网,不能出现的拓扑序列为()(1)1 2 3 4 5 (2)1 2 4 3 5 (3)2 4 1 3 5 (4)2 1 4 3 5AB C DEFG题三2图13542题三、3图4.深度为k 的完全二叉树所含叶结点的个数最多为 ( ) (1)2k (2) 2k-1 (3) k (4) 2k 5.衡量查找算法效率的主要标准是 ( ) (1) 元素个数 (2) 所需的存贮量 (3) 平均查找长度 (4) 算法难易程度 四、应用题(25分)1.将下列森林转化为二叉树。

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

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

20. 在一个长度为n的顺序表中删除一个值为x的元素时,需要比较元素和移动元素的总次数为( )。
A. (n+1)/2 B. n/2 C. n D. n+1
21. 在一个长度为n的顺序表的表尾插入一个新元素的渐进时间复杂度为( )。
for(int j=1; j<=i; j++) S;
A. n2 B. n2/2 C. n(n+1) D. n(n+1)/2
5. 下面算法的时间复杂度为( )。
int f(unsigned int n) {
C. p->link=p; D. p=p->link->link;
33. 非空的循环单链表first的尾结点(由p所指向)满足的条件是( )。
A. p->link==NULL; B. p==NULL;
A. n-i B. n-i+1 C. n-i-1 D. i
19. 在一个长度为n的顺序表中删除第i个元素(0≤i≤n-1)时,需要从前向后依次前移( )个元素。
A. n-i B. n-i+1 C. n-i-1 D. i
8. 当需要进行标准I/O操作时,则应在程序文件中包含iostream.h头文件,当需要进行文件I/O操作时,则应在程序文件中包含( )头文件。
A.fstream.h B.stdlib.h C.iomanip.h D.string.h
C. p->link==first; D. p==first;
34. 设单循环链表中结点的结构为(data, link),且rear是指向非空的带表头结点的单循环链表的尾结点的指针。若想删除链表第一个结点,则应执行的操作是( )。

数据结构期末综合练习

数据结构期末综合练习

数据结构〔本〕期末综合练习综合练习一一、单项选择题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〔£〕。

国家开放大学《数据结构(本)》综合练习题参考答案

国家开放大学《数据结构(本)》综合练习题参考答案
10.元素 111,113,115,117 按顺序依次进栈,则该栈的不可能输出序列是( ) (进栈出栈可以交替进行)。
A. 111,113,115,117 B. 117,115,111,113 C. 117,115,113,111 D. 113,111,117,115 11.图状结构中数据元素的位置之间存在( )的关系。 A. 每一个元素都有一个且只有一个直接前驱和一个直接后继 B. 多对多 C. 一对一 D. 一对一 12.以下说法正确的是( )。 A. 栈和队列的特点都是后进后出 B. 队列的特点是先进后出 C. 栈的特点是先进先出 D. 栈的特点是先进后出 13.一个单链表中,在 p 所指结点之后插入一个 s 所指的结点时,可执行: s->next=p->next;和( )。 A. s=p->next; B. p=s->next;
国家开放大学《数据结构(本)》综合练习题参考答案
一、填空题 1.对稀疏矩阵进行压缩存储,可采用三元组表,一个有 10 行的稀疏矩阵 A 共有 97 个零元素,其相应的三元组表共有 3 个元素。该矩阵 A 有(10)列。 2.结构中的数据元素存在多对多的关系称为(图状)结构。 3.在单向链表中,q 指向 p 所指结点的直接后继结点,要删除 q 所指结点,可以 用操作(p->next;)= q->next;。 4.n 个元素进行冒泡法排序,第 j 趟冒泡要进行(n-j)次元素间的比较。 5.对稀疏矩阵进行压缩存储,矩阵中每个非零元素对应的三元组包括该元素的行 下标、列下标和(数组元素)三项信息。 6.中序遍历(二叉排序树)树可得到一个有序序列。 7.队列的操作特点是后进(后出)。 8.待排序的序列为 8,3,4,1,2,5,9,采用直接选择排序算法,当进行了两 趟选择后,结果序列为(1,2,4,8,3,5,9)。 9.n 个元素进行冒泡法排序,通常需要进行(n-1)趟冒泡。 10.广义表((a,b),d,e((i,j),k))的长度是(4) 。 11.中序遍历二叉排序树可得到一个(有序)的序列。 12.广义表的(c,a,(a,b),d,e,((i,j),k))深度是(3)。 13.广义表(c,a,(a,b),d,e,((i,j),k))的长度是(6)。 14.对稀疏矩阵进行压缩存储,可采用三元组表,一个有 10 行 10 列的稀疏矩阵 A 共有 95 个零元素,其相应的三元组表共有(5)个元素。 15.广义表的(c,a,(a,b),d,e,((i,j),k))深度是(3)。 16.在对一组记录(50,49,97,22,16,73,65,47,88)进行直接插入排序 时,当把第 7 个记录 65 插入到有序表时,为寻找插入位置需比较(3)次。 17. 循 环 队 列 在 规 定 少 用 一 个 存 储 空 间 的 情 况 下 , 队 空 的 判 定 条 件 为 (front==rear)。 18.一棵有 5 个叶结点的哈夫曼树,该树中总共有(9)个结点。 19.c 语言中,字符串“E”存储时占(2)个字节。

数据结构习题(包含全部答案解析)

数据结构习题(包含全部答案解析)

数据结构习题集(自编)第一章绪论一、选择题1.数据结构是一门研究非数值计算的程序设计问题中的操作对象以及它们之间的()和运算的学科。

A.结构B.关系 C.运算 D.算法2.在数据结构中,从逻辑上可以把数据结构分成()。

A.动态结构和静态结构 B.紧凑结构和非紧凑结构C.线性结构和非线性结构 D.逻辑结构和存储结构3.线性表的逻辑顺序和存储顺序总是一致的,这种说法()。

A.正确B.不正确 C.无法确定 D.以上答案都不对4.算法分析的目的是()。

A.找出算法的合理性 B.研究算法的输人与输出关系C.分析算法的有效性以求改进 D.分析算法的易懂性5. 算法的时间复杂度取决于()A.问题的规模B待处理数据的初态 C. A和B6.一个算法应该是()。

A.程序B.问题求解步骤的描述C.要满足五个基本特性 D.A和C.7. 下面关于算法说法错误的是()A.算法最终必须由计算机程序实现B.为解决某问题的算法与为该问题编写的程序含义是相同的C. 算法的可行性是指指令不能有二义性D. 以上几个都是错误的8.以下与数据的存储结构无关的术语是()。

A.循环队列 B. 链表 C. 哈希表 D. 栈9.在下面的程序段中,对x的赋值语句的频度为()for(i=0;i<n;i++)for(j=0;j<n;j++)x=x+1;nA. 2n B.n C.n2 D.log210.以下数据结构中,()是非线性数据结构A.树 B.字符串 C.队列 D.栈11. 下列数据中,()是线性数据结构。

A.哈夫曼树 B.有向无环图 C. 二叉排序树 D. 栈12.以下属于逻辑结构的是()。

A.顺序表 B. 哈希表 C.有序表 D. 单链表二、填空题1、_______是信息的载体,是对客观事物的符号表示,它能够被计算机识别、存储、加工和处理,________是对能够有效的输人到计算机中并且能够被计算机处理的符号的总称。

(数据、数据)2、数据元素是数据的______,有些情况下也称为元素、结点、顶点、记录等。

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

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

数据结构(本)期末综合练习综合练习一一、单项选择题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个结点,则该树总共有()个结点。

数据结构练习题(含答案)

数据结构练习题(含答案)

数据结构练习题习题1 绪论1.1 单项选择题1. 数据结构是一门研究非数值计算的程序设计问题中,数据元素的①、数据信息在计算机中的②以及一组相关的运算等的课程。

① A.操作对象B.计算方法C.逻辑结构D.数据映象② A.存储结构B.关系C.运算D.算法2. 数据结构DS(Data Struct)可以被形式地定义为DS=(D,R),其中D是①的有限集合,R是D上的②有限集合。

① A.算法B.数据元素C.数据操作D.数据对象② A.操作B.映象C.存储D.关系3. 在数据结构中,从逻辑上可以把数据结构分成。

A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部结构4. 算法分析的目的是①,算法分析的两个主要方面是②。

① A. 找出数据结构的合理性 B. 研究算法中的输入和输出的关系C. 分析算法的效率以求改进D. 分析算法的易懂性和文档性② A. 空间复杂性和时间复杂性 B. 正确性和简明性C. 可读性和文档性D. 数据复杂性和程序复杂性5. 计算机算法指的是①,它必具备输入、输出和②等五个特性。

① A. 计算方法 B. 排序方法C. 解决问题的有限运算序列D. 调度方法② A. 可行性、可移植性和可扩充性 B. 可行性、确定性和有穷性C. 确定性、有穷性和稳定性D. 易读性、稳定性和安全性1.2 填空题(将正确的答案填在相应的空中)1. 数据逻辑结构包括、和三种类型,树形结构和图形结构合称为。

2. 在线性结构中,第一个结点前驱结点,其余每个结点有且只有个前驱结点;最后一个结点后续结点,其余每个结点有且只有个后续结点。

3. 在树形结构中,树根结点没有结点,其余每个结点有且只有个直接前驱结点,叶子结点没有结点,其余每个结点的直接后续结点可以。

4. 在图形结构中,每个结点的前驱结点数和后续结点数可以。

5. 线性结构中元素之间存在关系,树形结构中元素之间存在关系,图形结构中元素之间存在关系。

数据结构练习题及参考答案

数据结构练习题及参考答案

数据结构练习题第一部分绪论一、单选题1. 一个数组元素a[i]与________的表示等价。

A、 *(a+i)B、 a+iC、 *a+iD、 &a+i2. 对于两个函数,若函数名相同,但只是____________不同则不是重载函数。

A、参数类型B、参数个数C、函数类型3. 若需要利用形参直接访问实参,则应把形参变量说明为________参数A、指针B、引用C、值4. 下面程序段的时间复杂度为____________。

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)5. 执行下面程序段时,执行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)/26. 下面算法的时间复杂度为____________。

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!)二、填空题1. 数据的逻辑结构被分为__________、_________、__________和__________四种。

2. 数据的存储结构被分为__________、_________、__________和__________四种。

3. 在线性结构、树形结构和图形结构中,前驱和后继结点之间分别存在着________、________和________的联系。

4. 一种抽象数据类型包括__________和__________两个部分。

5. 当一个形参类型的长度较大时,应最好说明为_________,以节省参数值的传输时间和存储参数的空间。

数据结构-习题三数据结构综合练习

数据结构-习题三数据结构综合练习

练习1.内存中一片连续空间(不妨假设地址从1到m),提供给两个栈S1和S2使用,怎样分配这部分存储空间,使得对任一个栈,仅当这部分空间全满时才发生上溢。

2.叙述前序和中序遍历二叉树的步骤;一棵前序序列为1,2,3,4的二叉树,其中序序列可能是4,1,2,3吗?设一棵二叉树的前序序列为1,2,3,4,5,6,7,8,9,其中序序列为2,3,1,5,4,7,8,6,9,试画出该二叉树。

3.设有一个关键码的输入序列{ 55, 31, 11, 37, 46, 73, 63 },(1) 从空树开始构造平衡二叉搜索树, 画出每加入一个新结点时二叉树的形态。

若发生不平衡, 指明需做的平衡旋转的类型及平衡旋转的结果。

(2) 计算该平衡二叉搜索树在等概率下的查找成功的平均查找长度。

4.设散列表为HT[0..12],即表的大小为m=13。

现采用双散列法解决冲突。

散列函数和再散列函数分别为:H0(key)=key%13; 注:%是求余数运算(=mod)H i=(H i-1+REV(key+1)%11+1)%13; i=1,2,3,…,m-1、其中,函数REV(x)表示颠倒10进制数x的各位,如REV(37)=73,REV(7)=7等。

若插入的关键码序列为{2,8,31,20,19,18,53,27}。

(1)试画出插入这8个关键码后的散列表。

(2)计算搜索成功的平均搜索长度ASL。

5.下图表示一个地区的通讯网,边表示城市间的通讯线路,边上的权表示架设线路花费的代价,如何选择能沟通每个城市且总代价最省的n-1条线路,画出所有可能的选择。

6.给出一组关键字:29,18,25,47,58,12,51,10,分别写出按下列各种排序方法进行排序时的变化过程:(1)归并排序每归并一次书写一个次序。

(2)快速排序每划分一次书写一个次序。

(3)堆排序先建成一个最大堆,然后每从堆顶取下一个元素后,将堆调整一次。

7.假设用于通讯的电文由5个字母组成,A B C D E F ,字母在电文中的出现频率分别为0.09,0.12,0.07,0.22,0.23,0.27,画出哈夫曼树,并写出各个字符的哈夫曼编码。

数据结构试题集(包含答案 完整版)

数据结构试题集(包含答案 完整版)

第一章概论一、选择题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 )。

for(i=0;i<m;i++)for(j=0;j<n;j++)a[i][j]=i*j;A. O(m2)B. O(n2)C. O(m*n)D.O(m+n)6、算法是( D )。

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

A. O(n)B. O(nlog2n)C. O(n2)D. O(log2n)8、下面程序段的时间复杂度为( C )。

i=1;while(i<=n)i=i*3;A. O(n)B. O(3n)C. O(log3n)D. O(n3)9、数据结构是一门研究非数值计算的程序设计问题中计算机的数据元素以及它们之间的()和运算等的学科。

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

i=s=0;while(s<n){i++;s+=i;}A. O(n)B. O(n2)C. O(log2n)D. O(n3)11、抽象数据类型的三个组成部分分别为( A)。

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

数据结构综合习题集(含答案)

数据结构综合习题集(含答案)

数据结构习题集一、选择题1.数据结构中所定义的数据元素,是用于表示数据的。

( C )A.最小单位B.最大单位C.基本单位D.不可分割的单位2.从逻辑上可以把数据结构分为( C )A.动态结构、静态结构B.顺序结构、链式结构C.线性结构、非线性结构D.初等结构、构造型结构3.当待排序序列中记录数较少或基本有序时,最适合的排序方法为(A )A.直接插入排序法B.快速排序法C.堆排序法D.归并排序法4.关于串的的叙述,不正确的是( B)A.串是字符的有限序列B.空串是由空格构成的串C.替换是串的一种重要运算D.串既可以采用顺序存储,也可以采用链式存储5.带表头结点链队列的队头和队尾指针分别为front和rear,则判断队空的条件为(A )A.front==rear B.front!=NULL C.rear!=NULL D.front==NULL6.若构造一棵具有n个结点的二叉排序树,最坏的情况下其深度不会超过(B )A.n/2B.nC.(n+1)/2D.n+17.将两个各有n个元素的有序表合并成一个有序表,其最少的比较次数为(A)A.nB.2n-1C.2nD.n28.设顺序表有19个元素,第一个元素的地址为200,且每个元素占3个字节,则第14个元素的存储地址为(B )A.236B.239C.242D.2459.一个栈的入栈序列是a,b,c,d,e,则栈的输出序列不可能是(A )A.dceabB.decbaC.edcbaD.abcde10.元素大小为1个单元,容量为n个单元的非空顺序栈中,以地址高端为栈底,以top作为栈顶指针,则出栈处理后,top的值应修改为(D )A.top=topB.top=n-1C.top=top-1D.top=top+111.设有一个10阶的对称矩阵A,采用压缩存储方式以行序为主序存储,a00为第一个元素,其存储地址为0,每个元素占有1个存储地址空间,则a45的地址为( B )A.13B.35C.17D.3612.栈和队列( C )A.共同之处在于二者都是先进先出的特殊的线性表B.共同之处在于二者都是先进后出的特殊的线性表C.共同之处在于二者都只允许在顶端执行删除操作D.没有共同之处13.含有n个结点的二叉树用二叉链表表示时,空指针域个数为(C )A.n-1B.nC.n+1D.n+214.对一棵有100个结点的完全二叉树按层序编号,则编号为49的结点,它的左孩子的编号为( B )A.99B.98C.97D.5015.在一个图中,所有顶点的度数之和与图的边数的比是( C)A.1∶2B.1∶1C.2∶1D.4∶116.在一个具有n个顶点的无向图中,要连通全部顶点至少需要的边数为(A )A.n-1B.nC.n+1D.n/217.在一个具有n个顶点的无向图中,每个顶点度的最大值为( B )A.nB.n-1C.n+1D.2(n-1)18.若采用邻接表存储结构,则图的广度优先搜索类似于二叉树的(D )A.先序遍历B.中序遍历C.后序遍历D.层次遍历19.对线性表进行二分查找时,要求线性表必须( C)A.以顺序方式存储B.以链式方式存储C.以顺序方式存储,且结点按关键字有序排列D.以链接方式存储,且结点按关键字有序排列20.二分查找算法的时间复杂度是( D )A.O(n2)B.O(nlog2n)C.O(n)D.O(log2n)21.采用排序算法对n个元素进行排序,其排序趟数肯定为n-1趟的排序方法是( C )A.插入和快速B.冒泡和快速C.选择和插入D.选择和冒泡22. 闭散列表中由于散列到同一个地址而引起的“堆积”现象,是( B)A.由同义词之间发生冲突引起的B.由非同义词之间发生冲突引起的C.由同义词之间或非同义词之间发生冲突引起的D.由散列表“溢出”引起的23.在对查找表的查找过程中,若被查找的数据元素不存在,则把该数据元素插入到集合中。

十套数据结构试题及答案

十套数据结构试题及答案

数据构造试卷〔一〕一、单项选择题〔每题 2 分,共20分〕1.栈和队列的共同特点是( a )。

A.只允许在端点处插入和删除元素B.都是先进后出C.都是先进先出D.没有共同点2.用链接方式存储的队列,在进展插入运算时( d ).A. 仅修改头指针B. 头、尾指针都要修改C. 仅修改尾指针D.头、尾指针可能都要修改3.以下数据构造中哪一个是非线性构造?( d )A. 队列B. 栈C. 线性表D. 二叉树4.设有一个二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个空间,问A[3][3](10)存放在什么位置?脚注(10)表示用10进制表示。

cA.688 B.678 C.692 D.6965.树最适合用来表示( c )。

A.有序数据元素B.无序数据元素C.元素之间具有分支层次关系的数据D.元素之间无联系的数据6.二叉树的第k层的结点数最多为( d ).A.2k-1 B.2K+1 C.2K-1 D. 2k-17.假设有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进展二分查找,那么查找A[3]的比拟序列的下标依次为( c d)A. 1,2,3B. 9,5,2,3C. 9,5,3D. 9,4,2,38.对n个记录的文件进展快速排序,所需要的辅助存储空间大致为 cA. O〔1〕B. O〔n〕C. O〔1og2n〕D. O〔n2〕9.对于线性表〔7,34,55,25,64,46,20,10〕进展散列存储时,假设选用H〔K〕=K %9作为散列函数,那么散列地址为1的元素有〔 c d〕个,A.1 B.2 C.3 D.410.设有6个结点的无向图,该图至少应有( a )条边才能确保是一个连通图。

二、填空题〔每空1分,共26分〕1.通常从四个方面评价算法的质量:____时间正确性_____、____占用内存_易读性____、____复杂度__强壮性___和_____准确度_ 高效率___。

(完整版)数据结构练习题及参考答案

(完整版)数据结构练习题及参考答案

数据结构练习题第一部分绪论一、单选题1. 一个数组元素a[i]与________的表示等价。

A、 *(a+i)B、 a+iC、 *a+iD、 &a+i2. 对于两个函数,若函数名相同,但只是____________不同则不是重载函数。

A、参数类型B、参数个数C、函数类型3. 若需要利用形参直接访问实参,则应把形参变量说明为________参数A、指针B、引用C、值4. 下面程序段的时间复杂度为____________。

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)5. 执行下面程序段时,执行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)/26. 下面算法的时间复杂度为____________。

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!)二、填空题1. 数据的逻辑结构被分为__________、_________、__________和__________四种。

2. 数据的存储结构被分为__________、_________、__________和__________四种。

3. 在线性结构、树形结构和图形结构中,前驱和后继结点之间分别存在着________、________和________的联系。

4. 一种抽象数据类型包括__________和__________两个部分。

5. 当一个形参类型的长度较大时,应最好说明为_________,以节省参数值的传输时间和存储参数的空间。

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

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

数据结构(本)期末综合练习综合练习一一、单项选择题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.组成数据的基本单位是( C )。

(A) 数据项(B) 数据类型(C) 数据元素(D) 数据变量2.设数据结构A=(D,R),其中D={1,2,3,4},R={r},r={<1,2>,<2,3>,<3,4>,<4,1>},则数据结构A是( C )。

(A) 线性结构(B) 树型结构(C) 图型结构(D) 集合3.数组的逻辑结构不同于下列( D )的逻辑结构。

(A) 线性表(B) 栈(C) 队列(D) 树4.二叉树中第i(i≥1)层上的结点数最多有(C )个。

(A) 2i (B) 2i(C) 2i-1(D) 2i-15.设指针变量p指向单链表结点A,则删除结点A的后继结点B需要的操作为(A )。

(A) p->next=p->next->next (B) p=p->next(C) p=p->next->next (D) p->next=p6.设栈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) 27.将10阶对称矩阵压缩存储到一维数组A中,则数组A的长度最少为( C )。

(A) 100 (B) 40 (C) 55 (D) 808.设结点A有3个兄弟结点且结点B为结点A的双亲结点,则结点B的度数数为( B )。

(A) 3 (B) 4 (C) 5 (D) 19.根据二叉树的定义可知二叉树共有( B )种不同的形态。

(A) 4 (B) 5 (C) 6 (D) 710.设有以下四种排序方法,则( B )的空间复杂度最大。

(A) 冒泡排序(B) 快速排序(C) 堆排序(D) 希尔排序11、以下说法正确的是( A )A.连通图的生成树,是该连通图的一个极小连通子图。

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

数据结构综合练习题数据结构(一)一、选择题1.组成数据的基本单位是( C )。

(A) 数据项(B) 数据类型(C) 数据元素(D) 数据变量2.设数据结构A=(D,R),其中D={1,2,3,4},R={r},r={<1,2>,<2,3>,<3,4>,<4,1>},则数据结构A 是( C )。

(A) 线性结构(B) 树型结构(C) 图型结构(D) 集合3.数组的逻辑结构不同于下列( D )的逻辑结构。

(A) 线性表(B) 栈(C) 队列(D) 树4.二叉树中第i(i≥1)层上的结点数最多有(C )个。

(A) 2i (B) 2i(C) 2i-1(D) 2i-15.设指针变量p指向单链表结点A,则删除结点A的后继结点B需要的操作为(A )。

(A) p->next=p->next->next (B) p=p->next(C) p=p->next->next (D) p->next=p6.设栈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) 27.将10阶对称矩阵压缩存储到一维数组A中,则数组A 的长度最少为( C )。

(A) 100 (B) 40 (C) 55 (D) 808.设结点A有3个兄弟结点且结点B为结点A的双亲结点,则结点B的度数数为( B )。

(A) 3 (B) 4 (C) 5 (D) 19.根据二叉树的定义可知二叉树共有( B )种不同的形态。

(A) 4 (B) 5 (C) 6 (D) 710.设有以下四种排序方法,则( B )的空间复杂度最大。

(A) 冒泡排序(B) 快速排序(C) 堆排序(D) 希尔排序11、以下说法正确的是( A )A.连通图的生成树,是该连通图的一个极小连通子图。

B.无向图的邻接矩阵是对称的,有向图的邻接矩阵一定是不对称的。

C.任何一个有向图,其全部顶点可以排成一个拓扑序列。

D.有回路的图不能进行拓扑排序。

12、以下说法错误的是 ( D )A.一般在哈夫曼树中,权值越大的叶子离根结点越近B.哈夫曼树中没有度数为1的分支结点C.若初始森林中共有n裸二叉树,最终求得的哈夫曼树共有2n-1个结点D.若初始森林中共有n裸二叉树,进行2n-1次合并后才能剩下一棵最终的哈夫曼树13、如果从无向图的任一顶点出发进行一次深度优先搜索即可访问所有顶点,则该图一定是( B )A.完全图B.连通图C.有回路 D.一棵树14、将一棵有50个结点的完全二叉树按层编号,则对编号为25的结点x,该结点(B )A.无左、右孩子B.有左孩子,无右孩子C.有右孩子,无左孩子D.有左、右孩子15、深度为6的二叉树最多有(B )个结点A.64B.63C.32D.3116、一个有序顺表有255个对象,采用顺序搜索法查表,搜索长度为( A )。

A、128B、127C、126D、25517、在有向图中每个顶点的度等于该顶点的( C )。

A. 入度B. 出度C. 入度与出度之和D. 入度与出度之差18、具有n个顶点的有向无环图最多可包含( D )条有向边。

A.n-1 B.n C.n(n-1)/2 D.n(n-1)19、用邻接表作为有向图G的存储结构。

设有n个顶点、e条弧,则拓扑排序的时间复杂度为(B )A. O(n)B. O(n+e)C. O(e)D. O(n*e)20、一个有序顺表有255个对象,采用顺序搜索法查表,搜索长度为(A)。

A、128B、127C、126D、25521、在有向图中,所有顶点的入度之和是所有顶点出度之和的(B)倍。

A.0.5B. 1C. 2D.422、以下说法错误的是(B)A.用相邻矩阵法存储一个图时,在不考虑压缩存储的情况下,所占用的存储空间大小只与图中结点个数有关,而与图的边数无关。

B.邻接表法只能用于有向图的存储,而相邻矩阵法对于有向图和无向图的存储都适用。

C.存储无向图的相邻矩阵是对称的,因此只要存储相邻矩阵的下(或上)三角部分就可以了D.用相邻矩阵A表示图,判定任意两个结点Vi和Vj 之间是否有长度为m的路径相连,则只要检查A的第 i行第j列的元素是否为0即可。

23、在图的邻接表存储结构上执行深度优先搜索遍历类似于二叉树上的( A )A.先根遍历B. 中根遍历C. 后根遍历D按层次遍历24、在一个无向图中,所有顶点的度数之和等于所有边数的( B )倍。

A.3 B.2 C.1 D.1/2 25、在无向图中,所有顶点的度数之和是所有边数的( C )倍。

A.0.5B.1C.2D.426、设有6个结点的无向图,该图至少应有(B)条边能确保是一个连通图。

A. 5B. 6C. 7D. 827、以下说法正确的是( D )A.连通分量是无向图中的极小连通子图。

B.强连通分量是有向图中的极大强连通子图。

C.在一个有向图的拓扑序列中,若顶点a在顶点b之前,则图中必有一条弧<a,b>。

D.对有向图G,如果从任意顶点出发进行一次深度优先或广度优先搜索能访问到每个顶点,则该图一定是完全图。

二、填空题1.设顺序循环队列Q[0:m-1]的队头指针和队尾指针分别为F和R,其中队头指针F指向当前队头元素的前一个位置,队尾指针R指向当前队尾元素所在的位置,则出队列的语句为F =____________;。

2.设线性表中有n个数据元素,则在顺序存储结构上实现顺序查找的平均时间复杂度为___________,在链式存储结构上实现顺序查找的平均时间复杂度为___________。

3.设一棵二叉树中有n个结点,则当用二叉链表作为其存储结构时,该二叉链表中共有________个指针域,__________个空指针域。

4.设指针变量p指向单链表中结点A,指针变量s指向被插入的结点B,则在结点A的后面插入结点B的操作序列为______________________________________。

5.设无向图G中有n个顶点和e条边,则其对应的邻接表中有_________个表头结点和_________个表结点。

6.设无向图G中有n个顶点e条边,所有顶点的度数之和为m,则e和m有______关系。

7.设一棵二叉树的前序遍历序列和中序遍历序列均为ABC,则该二叉树的后序遍历序列为__________。

8.设一棵完全二叉树中有21个结点,如果按照从上到下、从左到右的顺序从1开始顺序编号,则编号为8的双亲结点的编号是___________,编号为8的左孩子结点的编号是_____________。

9.下列程序段的功能实现子串t在主串s中位置的算法,要求在下划线处填上正确语句。

int index(char s[ ], char t[ ]){i=j=0;while(i<strlen(s) && j<strlen(t)) if(s[i]==t[j]){i=i+l; j=j+l;}else{i=_______;j=______;}if (j==strlen(t))return(i-strlen(t));else return (-1);}10.设一个连通图G中有n个顶点e条边,则其最小生成树上有________条边。

三、应用题1.设完全二叉树的顺序存储结构中存储数据ABCDE,要求给出该二叉树的链式存储结构并给出该二叉树的前序、中序和后序遍历序列。

2.设给定一个权值集合W=(3,5,7,9,11),要求根据给定的权值集合构造一棵哈夫曼树并计算哈夫曼树的带权路径长度WPL。

3.设一组初始记录关键字序列为(19,21,16,5,18,23),要求给出以19为基准的一趟快速排序结果以及第2趟直接选择排序后的结果。

4.设一组初始记录关键字集合为(25,10,8,27,32,68),散列表的长度为7,散列函数H(k)=k mod 7,要求用线性探测法作为解决冲突的方法设计哈希表。

5.设无向图G(所右图所示),要求给出该图的深度优先和广度优先遍历的序列,并画给相应的生成树(一)参考答案二、填空题1. (F+1) % m2. O (n),O(n)3. 2n ,n+14. s ->next=p->next; s->next=s5. n , 2e6. m =2e7. C BA8. 4,169. i -j+1,010. n-1三、应用题1. 链式存储结构略,前序ABDEC ,中序DBEAC ,后序DEBCA 。

2. 哈夫曼树略,WPL=783. (18,5,16,19,21,23),(5,16,21,19,18,23)4. 线性探测:6827322510876543210ΛΛ数据结构(二)一、选择题1.下面关于线性表的叙述错误的是( )。

(A) 线性表采用顺序存储必须占用一片连续的存储空间(B) 线性表采用链式存储不必占用一片连续的存储空间(C) 线性表采用链式存储便于插入和删除操作的实现(D) 线性表采用顺序存储便于插入和删除操作的实现2.设哈夫曼树中的叶子结点总数为m,若用二叉链表作为存储结构,则该哈夫曼树中总共有()个空指针域。

(A) 2m-1 (B) 2m (C) 2m+1 (D) 4m3.设顺序循环队列Q[0:M-1]的头指针和尾指针分别为F 和R,头指针F总是指向队头元素的前一位置,尾指针R总是指向队尾元素的当前位置,则该循环队列中的元素个数为()。

(A) R-F (B) F-R (C) (R-F+M)%M (D) (F-R+M)%M 4.设某棵二叉树的中序遍历序列为ABCD,前序遍历序列为CABD,则后序遍历该二叉树得到序列为()。

(A) BADC (B) BCDA (C) CDAB (D) CBDA5.设某完全无向图中有n个顶点,则该完全无向图中有()条边。

(A) n(n-1)/2 (B) n(n-1) (C) n2(D) n2-1 6.设某棵二叉树中有2000个结点,则该二叉树的最小高度为()。

(A) 9 (B) 10 (C) 11 (D) 127.设某有向图中有n个顶点,则该有向图对应的邻接表中有()个表头结点。

(A) n-1 (B) n (C) n+1 (D) 2n-18.设一组初始记录关键字序列(5,2,6,3,8),以第一个记录关键字5为基准进行一趟快速排序的结果为()。

(A) 2,3,5,8,6 (B) 3,2,5,8,6(C) 3,2,5,6,8 (D) 2,3,6,5,8二、填空题1.为了能有效地应用HASH查找技术,必须解决的两个问题是____________________和__________________________。

相关文档
最新文档