教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 实用模板 >

数据结构(C语言版)习题

来源:网络收集 时间:2026-08-08
导读: 数据结构习题一 1/8 习题一 一、 单选题 1. 在一个带有附加表头结点的单链表HL中,若要向表头插入一个由指针p指向的结点,则执行 ( )。 A. HL=p; p->next=HL; B. p->next=HL->next; HL->next=p; C. p->next=HL; p=HL; D. p->next=HL; HL=p; 2. 若顺序存储的

数据结构习题一 1/8

习题一

一、 单选题

1. 在一个带有附加表头结点的单链表HL中,若要向表头插入一个由指针p指向的结点,则执行

( )。

A. HL=p; p->next=HL; B. p->next=HL->next; HL->next=p; C. p->next=HL; p=HL; D. p->next=HL; HL=p;

2. 若顺序存储的循环队列的QueueMaxSize=n,则该队列最多可存储( )个元素. A. n B.n-1 C. n+1 D.不确定 3. 下述哪一条是顺序存储方式的优点?( )

A.存储密度大 B.插入和删除运算方便 C. 获取符合某种条件的元素方便 D.查找运算速度快

4. 设有一个二维数组A[m][n],假设A[0][0]存放位置在600(10),A[3][3]存放位置在678(10),每个元

素占一个空间,问A[2][3](10)存放在什么位置?(脚注(10)表示用10进制表示,m>3) A.658 B.648 C.633 D.653 5. 下列关于二叉树遍历的叙述中,正确的是( ) 。 A. 若一个树叶是某二叉树的中序遍历的最后一个结点,则它必是该二叉树的前序遍历最后一个结点 B.若一个点是某二叉树的前序遍历最后一个结点,则它必是该二叉树的中序遍历的最后一个结点 C.若一个结点是某二叉树的中序遍历的最后一个结点,则它必是该二叉树的前序最后一个结点 D.若一个树叶是某二叉树的前序最后一个结点,则它必是该二叉树的中序遍历最后一个结点 6. k层二叉树的结点总数最多为( ).

kk-1

A.2-1 B.2K+1 C.2K-1 D. 2 7. 对线性表进行二分法查找,其前提条件是( ). A.线性表以链接方式存储,并且按关键码值排好序

B.线性表以顺序方式存储,并且按关键码值的检索频率排好序 C. 线性表以顺序方式存储,并且按关键码值排好序

D.线性表以链接方式存储,并且按关键码值的检索频率排好序 8. 对n个记录进行堆排序,所需要的辅助存储空间为

A. O(1og2n) B. O(n) C. O(1) D. O(n2)

9. 对于线性表(7,34,77,25,64,49,20,14)进行散列存储时,若选用H(K)=K %7作为散

列函数,则散列地址为0的元素有( )个,

A.1 B.2 C.3 D.4 10.下列关于数据结构的叙述中,正确的是( ). A. 数组是不同类型值的集合

B. 递归算法的程序结构比迭代算法的程序结构更为精炼 C. 树是一种线性结构

D. 用一维数组存储一棵完全二叉树是有效的存储方法

二、 填空题

1. 数据的逻辑结构被分为_________、________、__________和___________四种。 2. 一个算法的时间复杂度为(3n3+2000nlog2n+90)/n2,其数量级表示为________。

3. 对于一个长度为n的单链存储的队列,在表头插入元素的时间复杂度为_________,在表尾插入元素的时间复杂度为____________。

4. 假定一棵树的广义表表示为A(D(E,G),H(I,J)),则树中所含的结点数为__________个,树的深度为___________,树的度为_________。

5. 后缀算式79 2 30 + - 4 2 / *的值为__________。中缀算式(3+X*Y)-2Y/3对应的

数据结构习题一 2/8

后缀算式为_______________________________。

6. 在一棵高度为5的理想平衡树中,最少含有_______个结点,最多含有_______个结点。 7. 在树中,一个结点的直接后继结点称为该结点的________。一个结点的直接前趋结点称为该结点的________。

8. 在一个具有10个顶点的无向完全图中,包含有________条边,在一个具有n个顶点的有向完全图中,包含有________条边。

9. 假定一个线性表为(12,17,74,5,63,49,82,36),若按Key % 4条件进行划分,使得同一余数的元素成为一个子表,则得到的四个子表分别为____________________________、___________________、_______________________和__________________________。

10. 对一棵B_树进行删除元素的过程中,若最终引起树根结点的合并时,会使新树的高度比原树的高度___________。

11. 在堆排序的过程中,对任一分支结点进行筛运算的时间复杂度为________,整个堆排序过程的时间复杂度为________。

12. 在线性表的散列存储中,装填因子?又称为装填系数,若用m表示散列表的长度,n表示待散列存储的元素的个数,则?等于________。

三、 运算题 1. 在如下数组A中链接存储了一个线性表,表头指针存放在A [ 0].next,试写出该线性表。 A 0 1 2 3 4 5 6 7 data 60 50 78 90 34 40 next

4 0 5 2 7 1 3 2. 已知一棵二叉树的前序遍历的结果是ABKCDFGHIJ, 中序遍历的结果是KBCDAFHIGJ, 试画出这棵二叉树。 3. 已知一个图的顶点集V为: V={1,2,3,4,5,6,7}; 其共有10条边。该图用如下边集数组存储: 起点 1 终点 6 权

1 2 4 1 2 5 2 5 4 2 5 7 2 2 6 3 2 7 3 6 7 4 1 7 5 3 5 7 试用克鲁斯卡尔算法依次求出该图的最小生成树中所得到的各条边及权值。 4. 画出向小根堆中加入数据4, 2, 5, 8, 3, 6, 10, 1时,每加入一个数据后堆的变化。

四、 阅读算法

1. 在下面的每个程序段中,假定线性表La的类型为List,元素类型ElemType为int,并假定每个程序段是连续执行的。试写出每个程序段执行后所得到的线性表La。 (1)InitList(La);

Int a[]={100,26,57,34,79};

For (i=0;i<5;i++) Insert(La,a[i]);

TraverseList(La); (2)DeleteFront(La);

InsertRear(La, DeleteFront(La)); TraverseList(La); (3)ClearList(La);

For (i=0;i<5;i++) InsertFront(La,a[i]); TraverseList(La);

数据结构习题一 3/8

2. 现面算法的功能是什么? void ABC(BTNode * BT) {

if BT {

cout<data<<' '; ABC(BT->left); ABC(BT->right); }

}

五、 算法填空

二分查找的递归算法。

Int Binsch(ElemType A[],int low,int high,KeyType K) {

if ___________________{ int mid=(low+high)/2;

if (_____________________) return mid; //查找成功,返回元素的下标 else if (K

return Binsch(A,low,mid-1,K); //在左子表上继续查找 else return_____________________________; //在右子表上继续查找 }

else ________________; //查找失败,返回-1 } 六、 编写算法

HL为单链表的表头指针,试写出在该单链表中查找具有给定的元素item的算法。 bool Find(LNode* HL, ElemType &item)

习题一参考答案

一、 单选题(每题2分,共20分)

1.B 2.B …… 此处隐藏:3298字,全部文档内容请下载后查看。喜欢就下载吧 ……

数据结构(C语言版)习题.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/454220.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)