数据结构综合练习题

合集下载

《数据结构》综合练习

《数据结构》综合练习

综合练习一、单项选择题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 )。

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

数据结构期末综合练习

数据结构期末综合练习

数据结构〔本〕期末综合练习综合练习一一、单项选择题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.设有头指针为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.一个数组元素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]中所有元素值的时间复杂度为( )。

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

国家开放大学《数据结构(本)》综合练习题参考答案
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[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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  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/225、在无向图中,所有顶点的度数之和是所有边数的( 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. CBA8. 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)%M4.设某棵二叉树的中序遍历序列为ABCD ,前序遍历序列为CABD ,则后序遍历该二叉树得到序列为( )。

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

(A) n(n-1)/2 (B) n(n-1) (C) n 2 (D) n 2-16.设某棵二叉树中有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 查找技术,必须解决的两个问题是____________________和__________________________。

相关文档
最新文档