数据结构题库.docx
- 文档编号:27863424
- 上传时间:2023-07-05
- 格式:DOCX
- 页数:30
- 大小:27.72KB
数据结构题库.docx
《数据结构题库.docx》由会员分享,可在线阅读,更多相关《数据结构题库.docx(30页珍藏版)》请在冰豆网上搜索。
数据结构题库
第一章绪论
选择题部分
1、组成数据的基本单位是(C)答案
(A)数据项(B)数据类型(C)数据元素(D)数据变量
2、数据结构是研究数据的(C)以及它们之间的相互关系。
答案
(A)理想结构,物理结构(B)理想结构,抽象结构
(C)物理结构,逻辑结构(D)抽象结构,逻辑结构
3、在数据结构中,从逻辑上可以把数据结构分成(C)答案
(A)动态结构和静态结构(B)紧凑结构和非紧凑结构
(C)线性结构和非线性结构(D)内部结构和外部结构
4、数据结构是一门研究非数值计算的程序设计问题中计算机的(A)以及它们之间的(B)和运算等的学科。
答案
①(A)数据元素(B)计算方法(C)逻辑存储(D)数据映像
②(A)结构(B)关系(C)运算(D)算法
5、算法分析的两个主要方面是(D)答案
(A)正确性和简单性(B)可读性和文档性
(C)数据复杂性和程序复杂性(D)时间复杂度和空间复杂度
6、算法分析的目的是(C)。
答案
(A)找出数据结构的合理性(B)研究算法中的输入和输出的关系
(C)分析算法的效率以求改进(D)分析算法的易懂性和文档性
7、计算机算法指的是(C),它必须具备输入、输出和(B)等5个特性。
答案
①(A)计算方法(B)排序方法(C)解决问题的有限运算序列(D)调度方法
②(A)可执行性、可移植性和可扩充性(B)可行性、确定性和有穷性
(C)确定性、有穷性和稳定性(D)易读性、稳定性和安全性
判断题
1、数据的机内表示称为数据的存储结构。
(对 )答案
填空题
1.数据逻辑结构包括(线性结构)、(树性结构)和(图状结构)三种类型,树形结构和图形结构合称为(非线性结构)。
答案
2.在线性结构中,第一个结点(没有)前驱结点,其余每个结点有且只有
(1)个前驱结点;最后一个结点(没有)后续结点,其余每个结点有且只有
(1)个后续结点。
答案
3.在树形结构中,树根结点没有(前驱)结点,其余每个结点有且只有
(1)个前驱结点;叶子结点没有(后续)结点,其余每个结点的后续结点可以(任意多个)。
答案
4.在图形结构中,每个结点的前驱结点数和后续结点数可以(任意多个)。
答案
5.线性结构中元素之间存在(一对一)关系,树形结构中元素之间存在(一对多)关系,图形结构中元素之间存在(多对多)关系。
答案
6.算法的五个重要特性是(可行性)、(确定性)、(有穷性)、(输入)、(输出)。
答案
7.数据结构的三要素是指(数据元素)、(逻辑结构)和(存储结构)。
答案
8.链式存储结构与顺序存储结构相比较,主要优点是(插入,删除,合并等操作方便进行)。
答案
9.设有一批数据元素,为了最快的存储某元素,数据结构宜用(顺序)结构,为了方便插入一个元素,数据结构宜用(链式)结构。
答案
算法分析题
1、求下列算法段的语句频度及时间复杂度
for(i=1;i<=n;i++)
for(j=1;j<=i;j++)
x=x+1;
分析:
该算法为一个二重循环,执行次数为内、外循环次数相乘,但内循环次数不固定,与外循环有关,因些,时间频度T(n)=1+2+3+…+n=n*(n+1)/2
有1/4≤T(n)/n2≤1,故它的时间复杂度为O(n2),即T(n)与n2数量级相同。
2、分析下列算法段的时间频度及时间复杂度
for(i=1;i<=n;i++)
for(j=1;j<=i;j++)
for(k=1;k<=j;k++)
x=i+j-k;
分析算法规律可知时间频度T(n)=1+(1+2)+(1+2+3)+...+(1+2+3+…+n)
由于有1/6≤T(n)/n3≤1,故时间复杂度为O(n3)
第二章线性表
线性表的判断题
1.线性表的链接存储,表中元素的逻辑顺序与物理顺序一定相同。
( 错 )答案
选择题部分
1.一个线性表第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是(B)答案
(A)110(B)108(C)100(D)120
3.向一个有127个元素的顺序表中插入一个新元素并保持原来顺序不变,平均要移动(C)个元素。
答案
(A)64(B)63(C63.5 (D)7
4.线性表采用链式存储结构时,其地址(D)。
答案
(A)必须是连续的(B)部分地址必须是连续的
(C)一定是不连续的(D)连续与否均可以
5.在一个单链表中,若p所指结点不是最后结点,在p之后插入s所指结点,则执行(B)答案
(A)s->next=p;p->next=s;(B)s->next=p->next;p->next=s;
(C)s->next=p->next;p=s;(D)p->next=s;s->next=p;
6.在一个单链表中,若删除p所指结点的后续结点,则执行(A)答案
(A)p->next=p->next->next;(B)p=p->next;p->next=p->next->next;
(C)p->next=p->next;(D)p=p->next->next;
7.下列有关线性表的叙述中,正确的是( A )答案
(A)线性表中的元素之间隔是线性关系
(B)线性表中至少有一个元素
(C)线性表中任何一个元素有且仅有一个直接前趋
(D)线性表中任何一个元素有且仅有一个直接后继
8.线性表是具有n个(C)的有限序列(n≠0)答案
(A)表元素(B)字符(C)数据元素 (D)数据项
填空题部分
1.已知P为单链表中的非首尾结点,在P结点后插入S结点的语句为:
(s->next=p->next;p->next=s;)。
答案
2.顺序表中逻辑上相邻的元素物理位置(一定)相邻,单链表中逻辑上相邻的元素物理位置(不一定)相邻。
答案
3.线性表L=(a1,a2,...,an)采用顺序存储,假定在不同的n+1个位置上插入的概率相同,则插入一个新元素平均需要移动的元素个数是(n/2)答案
算法设计题部分
1、试编写一个求已知单链表的数据域的平均值的函数(数据域数据类型为整
型)。
解答:
#include"stdio.h"
#include"malloc.h"
typedefstructnode
{intdata;
structnode*link;
}NODE;
intaver(NODE*head)
{inti=0,sum=0,ave;NODE*p;
p=head;
while(p!
=NULL)
{p=p->link;++i;
sum=sum+p->data;}
ave=sum/i;
return(ave);}
2、已知带有头结点的循环链表中头指针为head,试写出删除并释放数据域值
为x的所有结点的c函数。
解答:
#include"stdio.h"
#include"malloc.h"
typedefstructnode
{
intdata;/*假设数据域为整型*/
structnode*link;
}NODE;
voiddel_link(NODE*head,intx)/*删除数据域为x的结点*/
{
NODE*p,*q,*s;
p=head;
q=head->link;
while(q!
=head)
{
if(q->data==x)
{
p->link=q->link;
s=q;
q=q->link;
free(s);
}
else
{
p=q;
q=q->link;
}
}
}
3、某百货公司仓库中有一批电视机,按其价格从低到高的次序构成一个循环
链表,每个结点有价格、数量和链指针三个域。
现出库(销售)m台价格
为h的电视机,试编写算法修改原链表。
解答:
voiddel(NODE*head,floatprice,intnum)
{
NODE*p,*q,*s;
p=head;q=head->next;
while(q->price =head) { p=q; q=q->next; } if(q->price==price) q->num=q->num-num; else printf("无此产品"); if(q->num==0) { p->next=q->next; free(q); } } 4、某百货公司仓库中有一批电视机,按其价格从低到高的次序构成一个循环 链表,每个结点有价格、数量和链指针三个域。 现新到m台价格为h的电视机,试编写算法修改原链表。 #include"stdio.h" #include"malloc.h" typedefstructnode { floatprice; intnum; structnode*next; }NODE; voidins(NODE*head,floatprice,intnum) { NODE*p,*q,*s; p=head;q=head->next; while(q->price =head) { p=q; q=q->next; } if(q->price==price) q->num=q->num+num; else { s=(NODE*)malloc(sizeof(NODE)); s->price=price; s->num=num; s->next=p->next; p->next=s; } } 算法设计题部分 1、线性表中的元素值按递增有序排列,针对顺序表和循环链表两种不同的存储方式,分别编写C函数删除线性表中值介于a与b(a≤b)之间的元素。 顺序表: 算法思想: 从0开始扫描线性表,用k记录下元素值在a与b之间的元素个数,对于不满足该条件的元素,前移k个位置,最后修改线性表的长度。 voiddel(elemtypelist[],int*n,elemtypea,elemtypeb) { inti=0,k=0;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 题库
![提示](https://static.bdocx.com/images/bang_tan.gif)