数据结构综合题库文档格式.docx
- 文档编号:20491593
- 上传时间:2023-01-23
- 格式:DOCX
- 页数:12
- 大小:39.44KB
数据结构综合题库文档格式.docx
《数据结构综合题库文档格式.docx》由会员分享,可在线阅读,更多相关《数据结构综合题库文档格式.docx(12页珍藏版)》请在冰豆网上搜索。
i<
m;
i++)
for(intj=0;
j<
n;
j++)
a[i][j]=i*j;
A.O(m2)B.O(n2)C.O(m*n)D.O(m+n)
5设单链表中结点的结构为(data,link)。
已知指针q所指结点是指针p所指结点的直接前驱,若在*q与*p之间插入结点*s,则应执行下列哪一个操作(b)。
A.s->
link=p->
link;
p->
link=s;
B.q->
link=s;
s->
link=p;
C.p->
link=s->
link=q;
D.p->
6栈的插入和删除操作在(a)进行。
A.栈顶B.栈底C.任意位置D.指定位置
7若让元素1,2,3依次进栈,则出栈次序不可能出现哪种情况(c)。
A.3,2,1B.2,1,3C.3,1,2D.1,3,2
8广义表A(a),则表尾为(c)。
A.aB.(())C.空表D.(a)
9采用邻接表存储的图的深度优先遍历算法类似于二叉树的(b)。
A.中序遍历B.前序遍历C.后序遍历D.按层次遍历
10每次从无序表中挑选出一个最小或最大元素,把它交换到有序表的一端,此种排序方法叫做(b)排序。
A.插入B.选择C.交换D.外排序
11.一个顺序表有255个对象,采用顺序搜索查找,平均数据比较次数为(a)。
A.128B.127C.126D.255
12.含5个结点(元素值均不相同)的二叉树搜索树有(b)种。
A.54B.42C.36D.65
13.数据结构中,与所使用的计算机无关的是数据的c结构。
(A)存储;
(B)物理;
(C)逻辑;
(D)物理和存储;
14.d在链表中进行操作比在顺序表中进行操作效率高。
(A)顺序查找;
(B)折半查找;
(C)分块查找;
(D)插入;
15.树结构最适合于用来表示a。
(A)元素间具有分支和层次关系的数据;
(B)无序数据;
(C)有序数据;
(D)元素间没有关联的数据;
16.借助于栈,输入A、B、C、D四个元素,则不可能出现的输出序列为b。
(A)ABCD;
(B)CABD;
(C)DCBA;
(D)BACD;
17.从理论上讲,将数据以d结构存放,则查找一个数据所用时间不依赖于数据个数N。
A二叉查找树;
(B)链表;
(C)二叉树;
(D)散列表;
18.头指针为L的单循环链表,指针p所指结点为尾结点的条件为b。
(A)p→next=NULL;
(B)p→next=L;
(C)p=L;
(D)p=NULL;
19直接选择排序的时间复杂度为d(n为元素的个数)。
AO(n);
(B)O(log2n);
(C)O(nlog2n);
(D)O(n2)。
20散列存储中,碰撞(或称冲突)指的是b。
(A)两个元素具有相同序号;
(B)不同的关键字对应于相同的存储地址;
(C)两个记录的关键字相同;
(D)数据元素过多;
三、填空题
1.算法是一个有穷的指令集,它为解决某一特定任务规定了一个运算序列。
它应具有输入、输出、确定性、有穷性和可执行性等特性。
2.当问题的规模n趋向无穷大时,算法执行时间T(n)的数量级被称为算法的__时间渐进复杂度________。
3.在一棵度为3的树中,度为2的结点个数是1,度为0的结点个数是6,则度为3的结点个数是______2_____。
4.当用长度为n的数组顺序存储一个栈时,若用top==n表示栈空,则表示栈满的条件为__________top==0__________。
5.对序列(49,38,65,97,76,27,13,50)采用快速排序法进行排序,以序列的第一个元素为基准元素得到的划分结果是___________________________。
6.对于一棵具有n个结点的树,该树中所有结点的度数之和为___________________。
7.请指出在顺序表{5、11、23、35、51、64、72、85、88、90、98}中,用折半查找关键码30需做______________次关键码比较。
8.若线性表采用顺序存储结构,每个元素占用4个存储单元,第一个元素的存储地址为100,则第12个元素的存储地址是__________________。
9.在一个长度为n的顺序表中,向第i个元素(1≤i≤n+1)之前插入一个新元素时,需要向后移动____________个元素。
10.设有两个串p和q,求q在p中首次出现的位置的运算称作_____________。
11.判定一个循环队列QU(最多元素为m)为满队列的条件是____________。
12.在一个无向图的邻接表中,若表结点的个数是m,则图中边的条数是____________条。
13.对于一个具有n个顶点的图,若采用邻接矩阵表示,则矩阵大小为___________。
14.有N个顶点的无向连通图最少有_____________________条边。
15.在下图所示的链表中,若在指针p所指的结点之后插入数据域值相继为a和b的两个结点,则可用下列两个语句实现该操作,它们依次是________________________和_________________________。
16.设根结点的层数为0,定义树的高度为树中层数最大的结点的层数。
则高度为k的二叉树具有的结点数目,最少为___________,最多为___________。
17.单链表中指针p所指结点只有一个后继结点的条件是。
18.深度为k的满二叉树有个结点。
19.设s=‘IAMASTUDENT’,t=‘GOODWORKER’,CONCAT(Substr(s,6,2),t)=。
20.文件在外存储器组织结构的三种形式分别为、和。
21.对广义表LS=(a,((b,c),(),d),(((e))))进行HEAD和TAIL运算的结果分别是、。
22二维数组A[1..20,1..10]按行优先顺序存储,每个元素占4个单元,且A[1,1]的地址是1000,则A[18,9]的存储地址是。
23.深度为k的完全二叉树至少有个结点,至多有个结点。
24ISAM文件由、柱面索引、磁道索引和主文件组成。
25在单链表中,将指针p所指结点插到指针s所指结点后面的两步主要操作语句为,。
26.设二维数组A[1..20,1..10]按行优先存储,每个元素占4个单元,A[1,1]的地址是100,则A[5,5]的地址是。
27.散列既是一种方式,又是一种查找方法。
28抽象数据类型定义由部份组成。
四、程序阅读填空
1.在顺序表中第i个位置插入新元素x
template<
classType>
intSeqList<
Type>
:
Insert(Type&
x,inti){
if(i<
0||i>
last+1||last==MaxSize-1)return0;
//插入不成功
else{
last++;
for(________________________;
j>
i;
j--)
__________________________;
data[i]=x;
return1;
//插入成功
}
}
2.直接选择排序的算法
template<
voidSelectSort(datalist<
&
list)
{for(inti=0;
list.CurrentSize-1;
i++)________________________;
}
viodSelectExchange(datalist<
list,constinti){
intk=i;
for(intj=i+1;
j<
list.CurrentSize;
if(list.Vector[j].getKey()<
list.Vector[k].getKey())
_____________________;
//当前具有最小关键码的对象
if(k!
=i)Swap(list.Vector[i],list.Vector[k]);
//交换
3、删去链表中除表头结点外的所有其他结点
voidList<
:
MakeEmpty(){
ListNode<
*q;
while(first→link!
=NULL){
__________________________;
//将表头结点后第一个结点从链中摘下
deleteq;
//释放它
last=first;
//修改表尾指针
}
4、基于有序顺序表的折半搜索递归算法(Element为有序顺序表)
intorderedList<
BinarySearch(constType&
x,constintlow,constinthigh)const
{
intmid=-1;
if(low<
=high){
if(Element[mid].getKey()<
x)
mid=BinarySearch(__________________________);
elseif(Element[mid].getKey()>
x)
mid=BinarySearch(x,low,mid-1);
returnmid;
5、在顺序表中第i个位置插入新元素x。
intinsert(sqlist*L,datatypex,inti)
{intj;
if(L->
n==maxsize){cout<
<
”表满,不能插入!
(上溢)\n”;
return–1;
if(){cout<
”非法插入位置!
\n”;
return0;
for(j=L->
=i;
L->
data[j]=L->
data[j-1];
//节点后移
;
//插入x
n++;
//修改表长
Return1;
//插入成功
6、直接选择排序的算法
voidSelectSort(listR,intn)
{inti,j,k;
for(i=1;
=n-1;
i++){//n-1趟排序
;
for(j=i+1;
=n,j++)//在当前无序区中找键值最小的记录R[k]
if(R[j].key<
R[k].key);
if(k!
=i){R[0]=R[i];
R[i]=R[k];
R[k]=R[0];
五、简答题
1.线性表可用顺序表或是链表存储,此两种存储表示各有哪些优缺点?
2.设有一个输入数据的序列是{46,25,78,62,12,37,70,29},试画出从空树起,逐个输入各个数据而生成的二叉搜索树。
3.用广义表的带表头结点的存储表示法表示下列集合。
A=()
B=(6,2)
C=(‘a’,(5,3,‘x’))
D=(B,C,A)
E=(B,D)
4.上图所示为一有向图,请给出该图的下述要求:
(1)给出每个顶点的入度和出度;
(2)以结点3为起始结点,分别画出该图的一个深度优先生成树和一个宽度优先生成树;
(3)给出该图的邻接矩阵;
(4)给出该图的邻接表;
5.对于如上图所示的有向图,试写出:
(1)从顶点①出发进行深度优先搜索所得到的深度优先生成树;
(2)从顶点②出发进行广度优先搜索所得到的广度优先生成树;
6.已知二叉树的先序、中序和后序序列分别如下,但其中有一些已模糊不清,试构造出该二叉树。
先序序列 _BC_EF__
中序序列 BDE_AG_H
后序序列 _DC_GH_A
7.分析下列两个程序段的运行时间(时间复杂度)。
voidmystery(intn)
for(i=1;
i<
n;
i++)
for(j=i+1;
j<
=n;
j++)
for(k=1;
k<
=j;
k++);
voidodd(intn)
{inti,j,x=0,y=0;
ifodd(i)
{for(j=i;
j++)x++;
for(j=1;
=i;
j++)y++;
9.有一组数据:
25,50,70,21,4,18,100,43,7,12。
现采用汽泡排序算法进行排序,写出每趟排序的结果,并标明第一趟数据的移动情况。
10.数据结构与软件的关系是什么?
。
解决实际问题时,选取或者设计数据结构的原则是什么?
11.说明下列概念是否正确:
①线性表在物理存储空间中也一定是连续的;
②链表的物理存储结构具有同链表一样的顺序;
③链表的删除算法很简单,因为当删去链表中某个结点后,计算机会自动地将后继的各个单元向前移动。
使用双向链表存储数据,可以提高查找(定位)的速度。
12.写一个算法,借助栈将一个单链表倒置(提示:
可以使用栈的基本运算)。
也即,将下面的单链表:
13描述以下概念的区别:
头指针、头结点、首元结点。
头指针变量和头结点的作用?
并比较顺序存储结构和链式存储结构的优缺点。
14哪些链表可以仅由一个尾指针来唯一确定。
即从尾指针出发能访问到链表上任何一个结点。
15设n为正整数,试确定下列三段程序中带下划线语句的频度。
(a)inti=1,k=0;
while(i<
=n–1){k=k+10*i;
i=i+1;
(b)inti=1,j=0;
while((i+j)<
=n)
if(i>
j)j++;
elsei++;
(c)inti=1,k=0;
while(–i<
=n–1)
{k=k+10*i;
i++;
16已知s=‘(xyz)+*’,t=‘(x+z)*y’,试利用联接、求子串和置换等串的基本运算,将s转化为t。
17有如下12个整数:
23,37,7,79,29,43,73,19,31,61,23,47,按气泡排序方法将这组整数排序,分别写出每遍处理后的数列。
18逻辑结构与存储结构是什么关系?
,有何区别?
19设计求解下列问题的C++语言算法,并分析其最坏情况时间复杂度及其数量级:
1)在数组A[1…n]中查找值为k的元素,若找到则输出其位置i(1<
=i<
=n),否则输出0作为标志;
2)找出数组A[1…n]中元素的最大值和次最大值(本小题以数组元素的比较为标准操作)。
20写出下面二叉树的中序遍历结果。
J
21若栈为S,且已知pop(S)=A,试说明下列等式是否成立:
Pop(push(S,A))=push(S,pop(S));
22对于下图,从顶点1出发,分别按深度优先搜索和广度优先搜索方法遍历,写出相应的顶点序列。
23.已知下图所示双向循环链表L=(a,b,c,d)。
请写出将该表转换为L=(b,a,c,d)的简单操作。
24.对于给定字符串,1234+–×
/15678,试写出删除串中的‘+–×
/’的算法。
25算法与程序有何不同?
,为何要引出算法概念?
,如何评价算法的时间、空间复杂性及好坏?
26已知线性表(a1,a2,…,an)中的元素值按递增有序排列,选用向量结构存放。
试编写算法删除线性表中值介于c与d(c<
=d)之间的元素。
27.说明栈和队列与线性表的异同点。
28、给定一组元素值17、28、54、30、27、94、15、21、83、40,用这一组元素值构造一棵哈夫曼树。
29如果队列中不设表头结点,如图所示,并令front=rear=null表示队列空,试写出实现队列的三个基本操作(入队、出队、判空)。
30、设一个有序文件的关键字为2,5,8,11,13,17,25,36,47,55,60,63,65,67,76,84,当用折半查找算法查找关键字55时,试决定关键字的比较次数。
31、抽象数据类型(ADT)与面向对象方法有何关系?
使用ADT的优点有哪些?
32、给出一组关键字{12,2,16,30,8,4,10,20,6,18}。
写出按下上升排序时,用汽泡排序方法排序的每一趟排序结束状态。
33、试写出一个将已知字符串所有字符倒过来重新排列的算法。
例如ABCDEF改为FEDCBA。
34、试描述数据结构的概念与程序设计语言中数据类型概念的区别。
35、试设计算法,求循环链表中结点的个数,并删除表中的第一个结点a1。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 综合 题库