数据结构综合题库文档格式.docx

上传人:b****5 文档编号:20491593 上传时间:2023-01-23 格式:DOCX 页数:12 大小:39.44KB
下载 相关 举报
数据结构综合题库文档格式.docx_第1页
第1页 / 共12页
数据结构综合题库文档格式.docx_第2页
第2页 / 共12页
数据结构综合题库文档格式.docx_第3页
第3页 / 共12页
数据结构综合题库文档格式.docx_第4页
第4页 / 共12页
数据结构综合题库文档格式.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

数据结构综合题库文档格式.docx

《数据结构综合题库文档格式.docx》由会员分享,可在线阅读,更多相关《数据结构综合题库文档格式.docx(12页珍藏版)》请在冰豆网上搜索。

数据结构综合题库文档格式.docx

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。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1