山大网络《数据结构》试卷( C 卷)

合集下载

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

数据结构c考研试题及答案

数据结构c考研试题及答案

数据结构c考研试题及答案数据结构C考研试题及答案1. 选择题1.1 以下哪个选项不是线性表的顺序存储结构的特点?A. 存储空间连续B. 存储空间不连续C. 可以随机访问D. 插入和删除操作效率低答案:B1.2 在二叉树的遍历中,先访问根节点,然后遍历左子树,最后遍历右子树,这种遍历方式称为:A. 前序遍历B. 中序遍历C. 后序遍历D. 层序遍历答案:A2. 填空题2.1 在一个长度为n的数组中,使用二分查找法查找一个元素,最坏情况下需要比较的次数为______。

答案:log2(n+1)-12.2 哈希表的冲突解决方法有多种,其中一种方法是______。

答案:链地址法3. 简答题3.1 请简述图的深度优先搜索(DFS)算法的步骤。

答案:深度优先搜索算法的步骤如下:1. 访问起始顶点;2. 对于起始顶点的每一个邻接顶点,如果未被访问,则递归地进行深度优先搜索;3. 继续对未访问的邻接顶点进行步骤2,直到所有邻接顶点都被访问;4. 回溯到上一个顶点,继续访问未访问的邻接顶点,直到所有顶点都被访问。

3.2 什么是堆排序算法?请简要描述其工作原理。

答案:堆排序算法是一种基于二叉堆的比较排序算法。

其工作原理如下:1. 将待排序的序列构造成一个大顶堆;2. 将堆顶元素,即当前最大值,与序列末端元素进行交换,然后将序列长度减一;3. 对新的堆顶元素调整为新堆的堆顶;4. 重复步骤2和3,直到堆的大小为1或0。

4. 编程题4.1 编写一个函数,实现单链表的反转。

答案:```cstruct ListNode {int val;struct ListNode *next;};struct ListNode* reverseList(struct ListNode* head) {struct ListNode* prev = NULL;struct ListNode* curr = head;struct ListNode* next = NULL;while (curr != NULL) {next = curr->next;curr->next = prev;prev = curr;curr = next;}head = prev;return head;}```4.2 给定一个二叉搜索树的根节点,请实现一个函数,返回树中任意两个节点的值的差的绝对值的最小值。

山东大学数据结构模拟试卷

山东大学数据结构模拟试卷

山东大学数据结构(一)一、单选题(每题2 分,共20分)1.栈和队列的一路特点是( )。

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

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

A.有序数据元素B.无序数据元素C.元素之间具有分支层次关系的数据D.元素之间无联系的数据6.二叉树的第k层的结点数最多为( ).A.2k-1 +1 C.2K-1 D. 2k-17.如有18个元素的有序表寄存在一维数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A[3]的比较序列的下标依次为( )A. 1,2,3B. 9,5,2,3C. 9,5,3D. 9,4,2,38.对n个记录的文件进行快速排序,所需要的辅助存储空间大致为A. 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的元素有()个,A.1 B.2 C.3 D.410.设有6个结点的无向图,该图至少应有( )条边才能确保是一个连通图。

.6 C二、填空题(每空1分,共26分)1.通常从四个方面评价算法的质量:_________、_________、_________和_________。

2.一个算法的时刻复杂度为(n3+n2log2n+14n)/n2,其数量级表示为________。

36山东大学网络教育数据结构期末考试试题及参考答案

36山东大学网络教育数据结构期末考试试题及参考答案
我的答案:B
15
线性表是具有n个( )的有限序列(n>0)。
A、表元素
B、字符
C、数据元素
D、数据项
E、信息项
我的答案:C
16
若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用( )存储方式最节省时间。
A、顺序表
B、双链表
C、带头结点的双循环链表
A、-A+B*C/DE
B、-A+B*CD/E
C、-+*ABC/DE
D、-+A*BC/DE
我的答案:D
二.判断题(共20题,50.0分)
1
数组是一种复杂的数据结构,数组元素之间的关系既不是线性的也不是树形的( )
我的答案:√
2
链式存储在插入和删除时需要保持物理存储空间的顺序分配,不需要保持数据元素之间的逻辑顺序( )
D、单循环链表
我的答案:A
17
某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用( )存储方式最节省运算时间。
A、单链表
B、仅有头指针的单循环链表
C、双链表
D、仅有尾指针的单循环链表
我的答案:D
18
下面给出的四种排序法中( )排序法是不稳定性排序法。
我的答案:×
3
在用循环单链表表示的链式队列中,可以不设队头指针,仅在链尾设置队尾指针( )
我的答案:√
4
通常递归的算法简单、易懂、容易编写,而且执行的效率也高( )
我的答案:×
5
一个广义表的表尾总是一个广义表( )

山东大学-2018-2019-学年-一-学期----数据结构--课程试卷A

山东大学-2018-2019-学年-一-学期----数据结构--课程试卷A

………………………………………………密………………………………封………………………………线………………………………山东大学 2018-2019 学年 一 学期 数据结构 课程试卷A题号 一 二 三 四 五 六 七 八 九 十 总分 阅卷人得分学院 专业 级 学号 姓名一、线性结构(30分)。

1、已知线性表:(8,9,2,13,0,7,1,6,5),请完成以下题目。

⑴请描述公式化描述及链表描述的空间需求。

如果需要删除元素13,请描述各自的时间复杂度。

⑵ 请分别进行选择排序、插入排序、快速排序(以8为轴),并给出第一轮排序结束后各自的结果。

⑶ 设计散列表,散列函数为H (k)=k%7,散列表长度为11,请给出线性开型寻址的散列表。

⑷ 基于以上散列表,查找元素1,给出需要的查找次数。

⑸若使用单链表存储上述线性表,请阅读以下程序,并给出程序运行结果及其时间复杂度。

二、层次结构(35分)。

1. 二叉树的层次遍历序列为ABCDEFGHIJ ,中序遍历序列为DBGEHJACIF ,写出该二叉树的前序遍历序列。

2. 一个最大堆为(66,37,41,30,25,40,35,18),依次从中删除两个元素,写出最后得到的堆。

3. 有一份电文中共使用6个字符:A 、B 、C 、D 、E 、F ,它们的出现频率依次为10、6、5、2、15、4,试画出对应的赫夫曼树(请按左子树根节点的权小于等于右子树根节点的权的次序构造,左0右1),并求出每个字符的赫夫曼编码。

4. 对给定输入序列{ 19, 5, 7, 11, 26, 18, 16, 17 },构建AVL 树。

5. 在下列5阶B-树中首先插入关键字85,然后删除关键字70,画出插入元素和删除元素后的B-树。

三、网状结构(35分)。

1. 请给出从加权无向图中生成最小耗费生成树的两种方法,请分别描述其算法思想,并给出各自的时间复杂度。

2. 下面是某有向加权图(顶点A,B,C,D,E)的耗费邻接矩阵,先给出一个拓扑序列,然后,使用Dijkstra算法依次计算出顶点A 至其它各顶点的最短路径和最短路径长度。

《数据结构》模拟试卷C及答案

《数据结构》模拟试卷C及答案
第3趟17 7 18 32 40 60
第4趟71718 32 40 60
第5趟无元素交换,排序结束。
3.请画出与下面的二叉树相对应的森林。
答:
4.设有无向图如下图所示。请画出该图的邻接表,写出一个从顶点A出发的广
度优先搜索序列。
答:
广度优先搜索序列:abcdefg
五、算法设计题(本大题共2小题,共21分)
A.直接插入排序B.快速排序C.直接选择排序D.堆排序
8.高度为k的完全二叉树至少含有( )个结点。B
A.2kB.2k-1C.2k+1D.2k-1
9.n个顶点的强连通图至少有( )条边。A
A. nB. n+1C.n-1D. n(n-1)
10.在最坏情况下,二叉排序树的平均成功查找长度是()的。B
A.O(log2n) B.O(n) C.O(n2) D.O(1)
3.线性表有两种常用的存储结构,即顺序表和链表,这两种存储结构各有什么优缺点?
答:线性表的顺序存储结构简单,不需要使用额外的存储空间来表示元素之间的关系,逻辑顺序与物理顺序一致,可随机存取,有些运算容易实现;但在做插入和删除运算时,要移动大量的元素,表长是固定的,不易扩展。链式存储表示是动态结构,表长可任意扩充,插入和删除不需要移动大量的元素;但不能随机存取,需要增加额外的存储空间来显式地表示元素之间的关系,逻辑顺序与物理顺序可以不一致。
1.设有长度大于1的循环单链表,p为指向其中某个结点的指针,删除该结点的前驱结点的算法如下。请在此算法的空白处填上适当的内容。(10分)
ListNode *delfront(p)
ListNode *p;
{
ListNode *q, *r;
q=p;

山东大学网络教育 135#——数据结构 考试试题及参考答案

山东大学网络教育 135#——数据结构 考试试题及参考答案

年级________;层次________;专业________;姓名________复习资料,自我完善,仅供参考,考完上交! 《数据结构》试卷(A 卷)一、选择题1. 数据结构是指(A )。

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

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

A.一对一关系B.多对多关系C.多对一关系D.一对多关系4. 设语句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 ) 5. 算法分析的目的是(1) C ,算法分析的两个主要方面是(2) A 。

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

(1) A.计算方法 B.排序方法C.解决问题的有限运算序列D.调度方法(2) A.可行性,可移植性和可扩充性 B.可行性,确定性和有穷性C.确定性,有穷性和稳定性D.易读性,稳定性和安全性7. 数据在计算机内有链式和顺序两种存储方式,在存储空间使用的灵活性上,链式存储比顺序存储要( B )。

A.低B.高C.相同D.不好说。

数据结构试卷C.docx

数据结构试卷C.docx

《数据结构》试卷C一、单项选择题(在每小题的四个备选答案中,选岀一个正确答案,并将正确答案的序号填在题干的括号内。

每小题2分,共38分)1. 算法指的是()A. 计算机程序 B .解决问题的计算方法C.排序算法D.解决问题的有限运算序列2. 线性表采用链式存储时,结点的存储地址()A. 必须是不连续的B. 连续与否均可C. 必须是连续的D. 和头结点的存储地址相连续3. 将长度为n 的单链表链接在长度为m 的单链表Z 后的算法的时间复杂度为() A. 0 (1) B. 0 (n ) C ・ 0 (m ) D. 0 (m+n )4. 由两个栈共亨一个向量空间的好处是:()A. 减少存取时间,降低下溢发牛的机率B. 节省存储空间,降低上溢发生的机率5. 设数组data[m]作为循环队列SQ 的存储空间,front 为队头指针,rest 为队尾指针,则执行出队操作后其头指针front 值为()7.若目标申的长度为n,模式串的长度为[n/3],则执行模式匹配算法时,在最坏情况卜•的时间复杂度是( ) A. 0 ( ) B. 0 (n) C. 0 (n2) D. 0 (n3)8. —个非空广义表的表头( )A.不可能是子表B.只能是子表C.只能是原了D.可以是了表或原了10.在一棵度为3的树屮,度为3的结点个数为2,度为2的结点个数为1,则度为0的结点个 数为()A. 4B. 5C. 6D. 7 11. 在含n 个顶点和e 条边的无向图的邻接矩阵中,零元素的个数为()A. eB. 2eC. n2—eD. n2—2e12. 假设一个有n 个顶点和e 条弧的有向图用邻接表表示,则删除与某个顶点vi 相关的所有 弧的时间复杂度是()A. 0(n )B. 0(e )C. 0(n+e )D. 0(n*e )13. 用某种排序方法对关键字序列(25, 84, 21, 47, 15, 27, 68, 35, 20)进行排序时, 序列的变化情况如下:20, 15, 21, 25, 47, 27, 68, 35, 84C. 减少存取时间, 降低上溢发生的机率D.节省存储空间, 降低下溢发牛的机率A. front=front+l C. front=(front-1)%m 6. 如下陈述中正确的是()B. front=(front+l)%(m-l)D. front=(front+1)%mB. 串的长度必须大丁•零 D.空串就是空白串15, 20, 21, 25, 35, 27, 47, 68, 8415, 20, 21, 25, 27, 35, 47, 68, 84 贝IJ 所采用的排序方法是() A.选择排序 B.希尔排序 C.归并排序 D.快速排序14. 适于对动态査找表进行高效率查找的组织结构是()17.有64个结点的完全二叉树的深度为( )(根的层次为1) o A. 8 C. 6D. 518. 在平衡二义树中插入一个结点后造成了不平衡,设最低的不平衡结点为A,并已知A 的左 孩了的平衡因了为-1,右孩了的平衡因子为0,则应作()型调整以使其平衡。

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

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

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

A. HL=ps p一>next=HLB. p一>next=HL;HL=pC. p一>next=Hl;p=HL;D. p一>next=HL一>next;HL一>next=p;2.n个顶点的强连通图中至少含有(B)。

A.n—l条有向边B.n条有向边C.n(n—1)/2条有向边D.n(n一1)条有向边3.从一棵二叉搜索树中查找一个元素时,其时间复杂度大致为( C )。

A.O(1)B.O(n)C.O(1Ogzn)D.O(n2)4.由权值分别为3,8,6,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为( D )。

A.24 B.48C. 72 D. 535.当一个作为实际传递的对象占用的存储空间较大并可能需要修改时,应最好把它说明为(B)参数,以节省参数值的传输时间和存储参数的空间。

A.整形B.引用型C.指针型D.常值引用型·6.向一个长度为n的顺序表中插人一个新元素的平均时间复杂度为( A )。

A.O(n) B.O(1)C.O(n2) D.O(10g2n)二、填空题(每空1分,共28分)1.数据的存储结构被分为顺序结构链接结构索引结构散列结构四种。

2.在广义表的存储结构中,单元素结点与表元素结点有一个域对应不同,各自分别为值域和子表指针域。

3.——中缀表达式 3十x*(2.4/5—6)所对应的后缀表达式为————。

4.在一棵高度为h的3叉树中,最多含有—(3h一1)/2—结点。

5.假定一棵二叉树的结点数为18,则它的最小深度为—5—,最大深度为—18—·6.在一棵二叉搜索树中,每个分支结点的左子树上所有结点的值一定—小于—该结点的值,右子树上所有结点的值一定—大于—该结点的值。

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

山大网络《数据结构》试卷( C 卷)

山大网络《数据结构》试卷( C 卷)

《数据结构》试卷(C卷)一、单项选择题1. 空串与空格字符组成的串的区别在于( B )。

A.没有区别B.两串的长度不相等C.两串的长度相等D.两串包含的字符不相同2. 一个子串在包含它的主串中的位置是指( D )。

A.子串的最后那个字符在主串中的位置B.子串的最后那个字符在主串中首次出现的位置C.子串的第一个字符在主串中的位置D.子串的第一个字符在主串中首次出现的位置3. 下面的说法中,只有(C )是正确的。

A.字符串的长度是指串中包含的字母的个数B.字符串的长度是指串中包含的不同字符的个数C.若T包含在S中,则T一定是S的一个子串D.一个字符串不能说是其自身的一个子串4. 两个字符串相等的条件是(D )。

A.两串的长度相等B.两串包含的字符相同C.两串的长度相等,并且两串包含的字符相同D.两串的长度相等,并且对应位置上的字符相同5. 若SUBSTR(S,i,k)表示求S中从第i个字符开始的连续k个字符组成的子串的操作,则对于S=“Beijing&Nanjing”,SUBSTR(S,4,5)=( B )。

A. “ijing”B. “jing&”C. “ingNa”D. “ing&N”6. 若INDEX(S,T)表示求T在S中的位置的操作,则对于S=“Beijing&Nanjing”,T=“jing”,INDEX(S,T)=( C )。

A.2B.3C.4D.57. 若REPLACE(S,S1,S2)表示用字符串S2替换字符串S中的子串S1的操作,则对于S=“Beijing&Nanjing”,S1=“Beijing”,S2=“Shanghai”,REPLACE(S,S1,S2)=( D )。

A. “Nanjing&Shanghai”B. “Nanjing&Nanjing”C. “ShanghaiNanjing”D. “Shanghai&Nanjing”8. 在长度为n的字符串S的第i个位置插入另外一个字符串,i的合法值应该是( C )。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

数据结构c语言版试题及答案一、选择题(每题2分,共20分)1. 在C语言中,以下哪个关键字用于定义结构体?A. structB. unionC. enumD. typedef答案:A2. 若定义了一个结构体变量,下列哪个语句是正确的?A. struct Student stu;B. struct Student stu[];C. struct Student stu[10];D. Student stu;答案:A3. 在C语言中,下列哪个函数用于创建链表节点?A. mallocB. freeC. callocD. realloc答案:A4. 下列哪个选项不是线性表的顺序存储结构的特点?A. 存储空间连续B. 可以快速地存取任一元素C. 空间利用率高D. 插入和删除操作复杂答案:D5. 在C语言中,以下哪个函数用于释放动态分配的内存?A. mallocB. freeC. callocD. realloc答案:B6. 下列哪个选项不是栈的基本操作?A. pushB. popC. topD. clear答案:D7. 在C语言中,以下哪个关键字用于定义联合体?A. structB. unionC. enumD. typedef答案:B8. 下列哪个选项是二叉树的遍历方式?A. 前序遍历B. 中序遍历C. 后序遍历D. 所有选项答案:D9. 在C语言中,以下哪个关键字用于定义枚举类型?A. structB. unionC. enumD. typedef答案:C10. 下列哪个选项是队列的基本操作?A. enqueueB. dequeueC. peekD. 所有选项答案:D二、填空题(每题2分,共20分)1. 结构体定义的关键字是______。

答案:struct2. 动态内存分配的函数是______。

答案:malloc3. 在C语言中,链表的头节点通常定义为______类型。

答案:指针4. 顺序存储结构的存储空间是______的。

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

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

数据结构题集c语言版考试题及答案一、单项选择题(每题2分,共20分)1. 在数据结构中,线性表的顺序存储结构是指()。

A. 用一组地址连续的存储单元依次存储线性表的元素B. 用一组地址不连续的存储单元依次存储线性表的元素C. 用数组来存储线性表的元素D. 用链表来存储线性表的元素答案:A2. 在一个长度为n的顺序表中,删除第i个元素(1≤i≤n)时,需要移动()个元素。

A. i-1B. n-iC. n-i+1D. i答案:B3. 对于一个有n个结点的线性表,采用链式存储结构时,进行查找第i个元素(1≤i≤n)的时间复杂度为()。

A. O(1)B. O(n)C. O(log2n)D. O(n^2)答案:B4. 在二叉树的遍历过程中,若一个结点的左子树为空,则该结点的右子树()。

A. 一定为空B. 一定不为空C. 可能为空,也可能不为空D. 以上说法都不对答案:C5. 在二叉排序树中,若某结点的左子树非空,则左子树中的所有结点的值()。

A. 都小于该结点的值B. 都大于该结点的值C. 都等于该结点的值D. 都大于等于该结点的值答案:A6. 一个具有n个顶点的连通图,其边数最少为()。

A. n-1B. nC. n+1D. 2n答案:A7. 在图的遍历中,深度优先搜索算法所对应的数据结构是()。

A. 栈B. 队列C. 链表D. 数组答案:A8. 哈希表的冲突解决方法中,开放定址法的特点是()。

A. 装填因子较大B. 装填因子较小C. 装填因子不受限制D. 以上说法都不对答案:B9. 快速排序算法的时间复杂度为()。

A. O(n)B. O(nlogn)C. O(n^2)D. O(logn)答案:B10. 用链表表示线性表的优点是()。

A. 插入和删除操作不需要移动元素B. 节省存储空间C. 可以方便地随机访问D. 可以动态分配存储空间答案:A二、填空题(每题2分,共20分)1. 在顺序表中,若p是指向第i个元素的指针,则p+5表示指向第()个元素的指针。

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

《数据结构》试卷(C卷)
一、单项选择题
1.空串与空格字符组成的串的区别在于(B)。

A.没有区别
B.两串的长度不相等
C.两串的长度相等
D.两串包含的字符不相同
2.一个子串在包含它的主串中的位置是指(D)。

A.子串的最后那个字符在主串中的位置
B.子串的最后那个字符在主串中首次出现的位置
C.子串的第一个字符在主串中的位置
D.子串的第一个字符在主串中首次出现的位置
3.下面的说法中,只有(C)是正确的。

A.字符串的长度是指串中包含的字母的个数
B.字符串的长度是指串中包含的不同字符的个数
C.若T包含在S中,则T一定是S的一个子串
D.一个字符串不能说是其自身的一个子串
4.两个字符串相等的条件是(D)。

A.两串的长度相等
B.两串包含的字符相同
C.两串的长度相等,并且两串包含的字符相同
D.两串的长度相等,并且对应位置上的字符相同
5.若SUBSTR(S,i,k)表示求S中从第i个字符开始的连续k个字符组成的子串的操作,则对于S=“Beijing&Nanjing”,SUBSTR(S,4,5)=(B)。

A.“ijing”
B.“jing&”
C.“ingNa”
D.“ing&N”
6.若INDEX(S,T)表示求T在S中的位置的操作,则对于S=“Beijing&Nanjing”,T=“jing”,INDEX(S,T)=(C)。

A.2
B.3
C.4
D.5
7.若REPLACE(S,S1,S2)表示用字符串S2替换字符串S中的子串S1的操作,则对于
S=“Beijing&Nanjing”,S1=“Beijing”,S2=“Shanghai”,REPLACE(S,S1,S2)=(D)。

A.“Nanjing&Shanghai”
B.“Nanjing&Nanjing”
C.“ShanghaiNanjing”
D.“Shanghai&Nanjing”
8.在长度为n的字符串S的第i个位置插入另外一个字符串,i的合法值应该是(C)。

A.i>0
B.i≤n
C.1≤i≤n
D.1≤i≤n+1
9.字符串采用结点大小为1的链表作为其存储结构,是指(D)。

A.链表的长度为1
B.链表中只存放1个字符
C.链表的每个链结点的数据域中不仅只存放了一个字符
D.链表的每个链结点的数据域中只存放了一个字符
10.在一棵度为3的树中,度为3的结点数为2个,度为2的结点数为1个,度为1的结点数为2个,则度为0的结点数为(C)个。

A.4
B.5
C.6
D.7
11.假设在一棵二叉树中,双分支结点数为15,单分支结点数为30个,则叶子结点数为(B)个。

A.15
B.16
C.17
D.47
12.假定一棵三叉树的结点数为50,则它的最小高度为(C)。

A.3
B.4
C.5
D.6
13.在一棵二叉树上第4层的结点数最多为(D)。

A.2
B.4
C.6
D.8
14.用顺序存储的方法将完全二叉树中的所有结点逐层存放在数组中R[1..n],结点R[i]若有左孩子,其左孩子的编号为结点(B)。

A.R[2i+1]
B.R[2i]
C.R[i/2]
D.R[2i-1]
15.由权值分别为3,8,6,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为(D)。

A.24
B.48
C.72
D.53
16.线索二叉树是一种(C)结构。

A.逻辑
B.逻辑和存储
C.物理
D.线性
17.线索二叉树中,结点p没有左子树的充要条件是(B)。

A.p->lc=NULL
B.p->ltag=1
C.p->ltag=1且p->lc=NULL
D.以上都不对
18.设n,m为一棵二叉树上的两个结点,在中序遍历序列中n在m前的条件是(B)。

A.n在m右方
B.n在m左方
C.n是m的祖先
D.n是m的子孙
19.如果F是由有序树T转换而来的二叉树,那么T中结点的前序就是F中结点的(B)。

A.中序
B.前序
C.后序
D.层次序
20.欲实现任意二叉树的后序遍历的非递归算法而不必使用栈,最佳方案是二叉树采用(A)存储结构。

A.三叉链表
B.广义表
C.二叉链表
D.顺序
21.下面叙述正确的是(D)。

A.二叉树是特殊的树
B.二叉树等价于度为2的树
C.完全二叉树必为满二叉树
D.二叉树的左右子树有次序之分
22.任何一棵二叉树的叶子结点在先序、中序和后序遍历序列中的相对次序(A)。

A.不发生改变
B.发生改变
C.不能确定
D.以上都不对
二、填空题
1.计算机软件系统中,有两种处理字符串长度的方法:一种是__固定长度___,第二种是__设置长度指针_____。

2.两个字符串相等的充要条件是___两个串的长度相等___和___对应位置的字符相等____。

3.设字符串S1=“ABCDEF”,S2=“PQRS”,则运算S=CONCAT(SUB(S1,2,LEN(S2)),SUB(S1,LEN(S2),2))后的串值为___”BCDEDE”____。

4.串是指__含n个字符的有限序列(n≥0)__。

5.空串是指__不含任何字符的串___,空格串是指_仅含空格字符的字符串___。

6.假定一棵树的广义表表示为A(B(E),C(F(H,I,J),G),D),则该树的度为__3___,树的深度为__4___,终端结点的个数为__6____,单分支结点的个数为___1___,双分支结点的个数为___1___,三分支结点的个数为__2_____,C结点的双亲结点为___A____,其孩子
结点为___F____和___G____结点。

7.设F是一个森林,B是由F转换得到的二叉树,F中有n个非终端结点,则B中右指针域为空的结点有_n+1___个。

8.对于一个有n个结点的二叉树,当它为一棵___完全___二叉树时具有最小高度,即为__【log2n】+1__,当它为一棵单支树具有___最大____高度,即为___n____。

9.由带权为3,9,6,2,5的5个叶子结点构成一棵哈夫曼树,则带权路径长度为_55__。

10.在一棵二叉排序树上按___中序____遍历得到的结点序列是一个有序序列。

11.对于一棵具有n个结点的二叉树,当进行链接存储时,其二叉链表中的指针域的总数为__2n__个,其中__n-1__个用于链接孩子结点,__n+1__个空闲着。

12.在一棵二叉树中,度为0的结点个数为n0,度为2的结点个数为n2,则n0=__n2+1__。

13.一棵深度为k的满二叉树的结点总数为_2k-1__,一棵深度为k的完全二叉树的结点总数的最小值为_2k-1____,最大值为___2k-1___。

14.由三个结点构成的二叉树,共有__5__种不同的形态。

15.设高度为h的二叉树中只有度为0和度为2的结点,则此类二叉树中所包含的结点数至少为__2h-1__。

16.一棵含有n个结点的k叉树,__单支树____形态达到最大深度,_完全二叉树__形态达到最小深度。

三、算法设计题
1.设有一个长度为s的字符串,其字符顺序存放在一个一维数组的第1至第s个单元中(每个单元存放一个字符)。

现要求从此串的第m个字符以后删除长度为t的子串,m<s,t<(s-m),并将删除后的结果复制在该数组的第s单元以后的单元中,试设计此删除算法。

2.设s和t是表示成单链表的两个串,试编写一个找出s中第1个不在t中出现的字符(假定每个结点只存放1个字符)的算法。

解:1、算法描述为:
int delete(r,s,t,m)//从串的第m个字符以后删除长度为t的子串
char r[];
int s,t,m;
{int i,j;
for(i=1;i<=m;i++)
r[s+i]=r[i];
for(j=m+t-i;j<=s;j++)
r[s-t+j]=r[j];
return(1);
}//delete
2、算法思想为:
(1)链表s中取出一个字符;将该字符与单链表t中的字符依次比较;
(2)当t中有与从s中取出的这个字符相等的字符,则从t中取下一个字符重复以上比较;(3)当t中没有与从s中取出的这个字符相等的字符,则算法结束。

设单链表类型为LinkList;注意,此时类型LinkList中的data成分为字符类型。

LinkString find(s,t)
LinkString*s,*t;
{LinkString*ps,*pt;
ps=s;
while(ps!=NULL)
{pt=t;
while((pt!=NULL)&&(ps->data!=pt->data))
pt=pt->next;
if(pt==NULL)
ps=NULL;
else
{ps=ps->next;
s=ps;
}
}
return s;
}//find。

相关文档
最新文档