数据结构复习题Word文档下载推荐.docx
- 文档编号:17634680
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:9
- 大小:49.95KB
数据结构复习题Word文档下载推荐.docx
《数据结构复习题Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数据结构复习题Word文档下载推荐.docx(9页珍藏版)》请在冰豆网上搜索。
13.设无向图的顶点个数为n,则该图最多有()条边。
A.n-1B.n(n-1)/2C.n(n+1)/2D.0
14.具有35个结点的完全二叉树的深度为()。
A.5B.6C.7D.8
15.用顺序存储的方法将完全二叉树中所有结点逐层存放在数组a[1]~a[n]中,结点a[i]若有左孩子,其左孩子的编号为结点()。
A.a[2i+1]B.a[2i-1]C.a[i/2]D.a[2i]
16.查找表是以()为查找结构的。
A.集合B.图C.树D.文件
17.下面排序方法中,关键字比较次数与记录的初始排列无关的是( )
A.希尔排序B.直接选择排序C.直接插入排序D.冒泡排序
18.循环队列占用的空间()。
A.必须连续B.不必连续C.不能连续D.可以不连续
19.设有一个字符串S=”abcdefgh”,该串的最大字串个数为()。
A.8B.36C.37D.9
20.在下列存储形式中,哪一种不是树的存储形式()。
A.双亲表示法B.孩子链表表示法C.孩子兄弟表示法D.顺序存储表示法
21.n个节点的完全有向图含有变的数目()
A.n*nB.n*(n+1)C.n/2D.n*(n-1)
22.链表不具备的特点是()。
A.随机访问B.不必事先估计存储空间
C.插入删除时不需移动元素D.所需空间与线性表成正比
23.在一个长度为n的顺序表中,若要删除第i(1≤i≤n)个元素,则需向前移动()个元素。
A.n-i+1B.n-i-1C.n-iD.i
24.查找表是以()为查找结构的。
A.集合B.图C.树D.文件
25.下面各种排序方法中,最好情况下时间复杂度为O(n)的是()。
A.快速排序B.直接插入排序C.堆排序D.归并排序
26.一个无向图有5个顶点、9条边,则其生成树将要去掉()条边。
27.在有n个结点的顺序表上做插入、删除结点运算的时间复杂度为()。
A.O
(1)B.O(n)C.O(n2)D.O(log2n)
28.在单链表中,增加头结点的目的是()。
A.使单链表至少有一个结点B.标志表中首结点的位置
C.方便运算的实现D.说明该单链表是线性表的链式存储结构
29.有6个元素按6,5,4,3,2,1的顺序进栈,问下列()不是合法的出栈序列?
A.543612B.453126C.346521D.234156
30.对于队列操作数据的原则是()。
A.先进先出B.后进先出C.先进后出D.不分顺序
31.设有一个字符串S="
WelcometoShenyang!
"
,问该串的长度为()。
A.18B.19C.20D.21
32.S1="
good"
,S2="
morning"
,执行函数SubStr(S2,4,LenStr(S1))后的结果为()。
A."
B."
ning"
C."
go"
D."
morn"
33.查找表是以()为查找结构的。
34.下面排序方法中,关键字比较次数与记录的初始排列无关的是( )
二、填空题
1.常见的数据结构有集合结构、线性结构、、图形结构。
2.在队列中,允许插入的一端称为。
3.对于二叉树来说,第i层上最多有节点。
4.一个连通图的是一个极小连通子图。
5.算法是一个有序指令的集合,算法效率量度分为和空间复杂度。
6.链式存储是利用来表示数据元素之间的逻辑关系。
7.在一个链栈中,若栈顶指针定于NULL,表示_。
8.由带权为3,6,2,9的4个叶子结点构成的一棵哈夫曼树,则带权路径长度为________。
9.循环队列的引入,目的是为了克服现象。
9.具有10个顶点的无向图,边的总数最多为。
10.在c语言中,以字符表示串值的终结。
11.折半查找方法对查找表查找时,要求查找表必须是顺序存储的表
12.广义表((a),((b),(c,d,e)))的表头是__________。
13.假定一组记录为{46,79,56,38,40,84},快速排序的第一次划分后,右区间内元素的个数为。
14.顺序查找、折半查找、分块查找都属于_________________查找。
15.两个不同的关键字,其散列函数值相同,因而得到同一个表的相同地址的现象称为。
16.某二叉树的后序遍历序列为DABEC,中序遍历序列为DEBAC,则先序遍历序列为。
17.数据的四种存储结构分别是顺序存储结构、、、。
18.评价算法的优劣通常主要考虑算法的和空间这两方面。
19.对于栈只能在位置插入和删除元素。
20.链式存储的特点是利用来表示数据元素之间的逻辑关系。
21.在单链表中要在已知结点*P之前插入一个新结点,需找到*P的直接前驱结点的地址,其查找的时间复杂度为。
22.对于二叉树来说,第i层上最多有_________个结点。
23.对线性表{18,25,63,50,42,32,90}进行哈希存储时,若选用H(k)=k%9作为哈希函数,则哈希地址为0的元素有____________个
24.循环队列的引入,目的是为了克服现象。
25.若对一个线性表经常进行查找操作,而很少进行插入和删除操作时,则采用存储结构为宜,相反,若经常进行的是插入和删除操作时,则采用存储结构为宜。
三、判断题
1.线性表的逻辑顺序总是与其物理顺序一致。
()
2.若一棵二叉树中的结点均无右孩子,则该二叉树的中根遍历和后根遍历序列正好相反。
()
3.图可以没有边,但不能没有顶点。
()
4.在满二叉树中,存在度为1的结点。
()
5.在满二叉树中,存在度为1的结点。
6.数组的顺序存储结构有两种:
按行序存储与按列序存储。
()
7.采用不同的遍历方法,所得到的无向图的生成树是不同的。
8.串中任意个字符组成的子序列称为该串的子串。
9.在顺序存储结构中,串的插入算法是非常方便的。
10.链队列在一定范围内不会出现队满的情况。
11.装载因子是散列表的一个重要参数,它反映了散列表的装满程度。
()
12.数据的逻辑结构是指各数据元素之间的逻辑关系,是用户根据应用需要建立的。
13.有向图不能进行广度优先遍历。
14.链式栈与顺序栈相比,一个明显的优点是通常不会出现栈满的情况。
()
15.在长度为n的顺序表中,求第i个元素的直接前驱算法的时间复杂度为0
(1)。
16.链队列的出队操作总是需要修改尾指针。
17.线性链表的删除算法简单,因为当删除链中某个结点后,计算机会自动地将后续的各个单元向前移动。
18.链栈与顺序栈相比,其特点之一是通常不会出现栈满的情况。
19.一个栈的输入序列为:
A,B,C,D,可以得到输出序列:
C,A,B,D。
20.快速排序的时间复杂性不受数据初始状态影响,恒为O(nlog2n)。
21.空串与空格串组成的字符串没有区别。
22.线性表采用顺序存储,必须占用一片连续的存储单元。
23.程序和算法原则上没有区别,所以在讨论数据结构时可以通用。
24.数据元素是数据的最小单位。
25.在二叉排序树中,根结点的值都小于孩子结点的值。
四、程序填空题
1.已知线性表中的元素是无序的,并以带表头结点的单链表作存储。
试写一算法,删除表中所有大于min,小于max的元素,试完成下列程序填空。
Voiddelete(lklisthead;
datatypemin,max){q=head->
next;
while(p!
=NULL)
{if((p->
data<
=min)||(
(1))
{q=p;
p=
(2);
}
else{q->
next=p->
next;
free(p);
(3);
}}}
2.假设用一个循环单链表表示一个循环队列,该队列只设一个尾指针rear,试填空完成向循环队列中插入一个元素为x的节点函数。
Typedefstructqueuenode{intdata;
structqueuenode*next;
}qu;
InQueue(qu*rear,intx){
qu*head,*s;
s=(4);
s->
data=(5);
if(rear==NULL){rear=s;
(6);
……}
3.以下的算法在第i个位置插入元素x,要求把下面的程序补全。
voidInsList(LinkList*head,inti,DataTypex)
{/*按位置插入元素函数*/
intj=0;
LinkList*p,*s;
p=head;
while(p->
next!
=NULL&
&
j<
i-1)/*定位插入点*/
{
(1);
(2);
}
if(p!
=NULL)/*p不为空则将新结点插到p后*/
{
s=(LinkList*)malloc(sizeof(LinkList));
/*生成新结点s*/
s->
data=x;
/*将数据x放入新结点的数据域*/
(3)/*将新结点s的指针域与p结点后面元素相连*/
(4)/*将p与新结点s链接*/
printf("
插入元素成功!
);
else
插入元素失败"
}
4.下列程序判断字符串s是否对称,对称则返回1,否则返回0;
如f("
abba"
)返回1,
f("
abab"
)返回0;
intf(_(7)____){
inti=0,j=0;
while(s[j])(8)________;
for(j--;
i<
j&
s[i]==s[j];
i++,j--);
return((9)______)}
5.设t是给定的一棵二叉树,下面的递归程序count(t)用于求得:
二叉树t中具有非空的左,右两个孩子的结点个数N2;
只有非空左孩子的个数NL;
只有非空右孩子的结点个数NR和叶子结点个数N0。
其中N2、NL、NR、N0都是全局变量,且在调用count(t)之前都置为0。
请将下面程序空处补完整。
typedefstructnode
{intdata;
Structnode*lchild,*rchild;
}node;
intN2,NL,NR,N0;
voidcount(node*t)
{if(t->
lchild!
if(___)N2++;
elseNL++;
elseif(___)NR++;
else___
if(t->
=NULL)___
rchild!
=NULL)___}
6.设x和y两个串均采用顺序存储方式,下面的程序是比较x和y两个串是否相等的函数,试完成程序填空。
#defineMAXLEN100
typedefstruct
{charvec[MAXLEN];
intlen;
}str;
intsame(x,y)
str*x,*y;
{inti=0,tag=1;
if(x->
leny->
len)return(0);
else{while(i<
x->
lentag)
{if(x->
vec[i]y->
vec[i]);
;
}return(tag);
}}
五、应用题
1.给定一组权值{2,9,8,18,4},设计相应的哈夫曼树,并求其带权路径长度WPL
2.已知先序序列为ABCDEFGHIJ,中序序列为CBEDAGHFJI,请恢复这棵二叉树。
3.已知一无向网的邻接矩阵如图,求从顶点A开始的最小生成树。
4.已知关键字集{30,15,21,40},若查找表的装填因子为0.4,设哈希函数为:
H(Key)=Key%9,采用线性探测再散列方法解决冲突,画出哈希表;
计算查找成功的平均查找长度。
5.已知一个无向图如右图所示。
(1)要求画出无向图的邻接矩阵。
(5分)
(2)要求用普里姆(Prim)算法求出最小生成树(假设以①为起点)。
画出该图的最小生成树。
6.假定对有序表{3,4,5,7,24,30,42,54,63,72,87,95}进行折半查找,试回答下列问题:
(1)画出描述折半查找过程的判定树;
(6分)
(2)若查找元素54,需依次与那些元素比较?
(4分)
7.给定一组权值{3,6,9,14,8,5,4,19,25},试设计相应的哈夫曼树,并求其带权路径长度WPL。
(10分)
8.请将下面的无向图G的邻接矩阵表示出来。
六、程序设计题
设顺序栈如图所示。
其中结点定义如下:
typedefstruct{
Elemtype*base,*top;
}Stack;
设计算法,将栈顶元素出栈并存入e中.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 复习题