数据结构的问答题Word文档下载推荐.docx
- 文档编号:19586737
- 上传时间:2023-01-08
- 格式:DOCX
- 页数:15
- 大小:268.61KB
数据结构的问答题Word文档下载推荐.docx
《数据结构的问答题Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数据结构的问答题Word文档下载推荐.docx(15页珍藏版)》请在冰豆网上搜索。
假定要求它们的出栈顺序是时出、a2、a6、a5、a1,那么应该如何安排push和pop操作序列?
所需的push和pop操作序列如下:
push,push,push,push,pop,pop,pop,push,push,pop,pop,pop
5•有一个递归函数Write(),定义如下:
Write(x)
if(x!
=0)
Write(x-1);
for(j=1;
j<
=x;
j++)
printf(“%3d”,x);
printf(“/n”);
试问,Write(5)的输出结果是什么?
输出结果为:
1
2
3
4
44
5
555
6.
试1
可满二叉树与完全二叉树之间有何关系?
由满二叉树与完全二叉树的定义可知,满二叉树一定是一棵完全二叉树,但完全.叉树却不一定是一棵满二叉树。
如果一棵二叉树不是完全二叉树,那么它绝对不可能是一棵满二叉树。
7•分别写出如图5-32所示二叉树的先序、中序、后序遍历序列。
图5-32二叉树示例
先序遍历序列为:
A-B-C-D-F-G-H-E,中序遍历序列为:
B-A-D-G-F-H-C-E,后序
遍历序列为:
B-G-H-F-D-E-C-A。
&
利用折半查找法对一个长度为10的有序表进行查找,请填写查找表中每个元素时所需要
的比较次数。
元景T标:
1234567S910
時填骂比較次数’
9.在冒泡排序算法里,是什么条件保证它的稳定性?
冒泡排序是一种稳定排序算法,主要是因为算法里每趟扫描时的判定条件设定为:
Ar[j].key>
Ar[j+1].key,它保证了原先在前面的记录,排序后仍然排在前面,不会改变它们之
间的相对顺序。
如果把大于号改为大于等于,那么算法就不是稳定的
应用题
1•已知一个带表头结点的递增单链表。
试编写一个算法,功能是从表中去除值大于min、
且值小于max的数据元素。
(假定表中存在这样的元素)
所需算法编写如下。
Del_Sq(Lk_h,nim,max)
ptr=Lk_h->
/*ptr指向链表的起始结点*/
while((ptr!
=NULL)&
(ptr->
Data<
=min))/*跳过所有值<
=min的结点*/
max))/*若结点值<
max,则去除*/
p=p->
qtr->
Next=ptr;
/*qtr指出第1个大于max的结点位置,完成链接*/
2.一个单链表Lk的表头指针为Lk_h,不同结点的Data域值有可能相同。
编写一个算法,功能是计算出Data域值为x的结点的个数。
算法应该遍历链表的每一个结点,遇到一个结点的Data域值为x时,计数器n就
加1。
最后返回计数器n。
Count_Lk(Lk_h)
n=0;
ptr=Lk_h;
=NULL)
if(ptr->
Data==x)
n=n+1;
Next
return(n);
}12.编写一个算法,它能够输出顺序队列Qs上所有元素的值。
算法编写如下:
Print_Qs(Qs_front,Qs_rear)
if(Qs_front==Qs_rear)/*队列空!
*/
printf(“queueisempty!
”);
else/*队列非空!
qtr=Qs_front;
while(qtr<
=Qs_rear)
printf(“%d”,*qtr);
qtr++;
3答:
相应的后缀表达式是583*+2-,其图示如下。
4•算法:
Trans_St(St,chi,ch2)
i=1;
While(St[i]!
="
\0"
)
if(St[i]==ch1)
St[i]==ch2;
i++;
是通过while循环来实现将顺序串St中所有的字符chi改为字符ch2的。
请改写成用for
循环来实现相同的功能。
用for循环改写的算法如下。
Trans_St(St,ch1,ch2)
for(i=1;
i<
=St_len;
i++)
if(St[i]==ch1)
St[i]=ch2;
5•已知顺序串St,编写一个算法,将其中第i个字符开始连续的j个字符删除。
(提示:
先要判断所给参数是否合理,然后通过将第i+j开始往后的字符全部移动j个位置,完成删除
的功能)
算法编写如下。
Moveij(St,i,j)
/*将i+j开始往后的所有字符前移j个位置*/
/*修改St的长度*/
/*安放新的串结束符*/
}else
printf(参数不合理,无法进行删除!
”);
6•在算法4-12的最后,为了释放被删结点使用的存储空间,先做了操作:
ptr->
Next=NULL;
把由指针ptr指向的最后一个要释放空间的结点的Next域设置为NULL,然后通过while循
环完成释放。
其实,由于知道要释放空间的结点共有m个,因此可以取消这一操作,改用
for循环通过m来控制释放空间的结点个数。
请试着按照这一思路改写那一小段算法。
改写一小段算法如下。
=m;
ptr=rtr;
rtr=rtr->
Next;
free(ptr);
7.已知两个mxn的矩阵A和B。
编写一个算法,求C=A+B。
即C也是一个mxn的矩阵,其元素满足条件:
cij=aij+bij(1wiwm,1wj<
n)
算法名为Add_Mt(),参数为A,B,Co
Add_Mt(A,B,C)
=n;
C[i][j]=A[i][j]+B[i][j];
已知中序遍历序列为:
A-B-C-E-F-G-H-D,后序遍历序列为:
A-B-F-H-G-E-D-C。
试画出
这棵二叉树。
9.一棵有11个结点的二叉树的顺序存储情况如表所示,该二叉树,并给出它的先序、中序、后序遍历序列(其中“
序号3的结点是根结点。
画出A表示空)。
序号
6
7
8
9
10
11
Lchild
A
Data
M
F
K
B
L
C
R
D
S
E
Rchild
二叉树如图所示,先序遍历序列为:
A-C-B-R-S-E-D-F-M-L-K,中序遍历序列为:
R-B-S-C-E-A-F-D-L-K-M,后序遍历序列为:
R-S-B-E-C-F-K-L-M-D-A。
11.已知一棵树如图6-25所示。
请画出该树的以下存储结构:
(1)双亲表示法;
(2)带双亲的孩子链表表示法(我们介绍过双亲表示法和孩子链表表示法,没有介绍过带双亲的
孩子链表表示法。
望能够把两者结合起来);
(3)孩子/兄弟链表表示法。
(1)双亲表示法如下图(a)所示;
(2)带双亲的孩子链表表示法如图下(b)所示;
(3)
孩子/兄弟链表表示法如下图(c)所示。
-1
i
1..
G
H
J
首
DataPfiient
12,将图6-28所示的森林转换成对应的二叉树。
树示例
图6-29
答:
对应的二叉树如下图所示。
13.将图6-29所示的树转换成相对应的二叉树。
答:
对应的二叉树如下图所示
14.设散列函数为h(key)=key%11,散列表长为11(索引地址为0~10)。
给定:
SUN,MON,TUE,WED,THU,FRI,SAT
取单词第1个字母在英语字母表中的序号为关键字值(比如S的关键字值为19),采用链地
址法解决散列地址冲突。
请画出对应的散列表。
对应的散列表如下。
15.有关键字序列:
36、27、68、33、97、40、81、24、23、90、32、14,散列表长为13,
采用的散列函数为:
h(key)=key%13,使用开放地址法的线性探测解决冲突。
请完成下面散列表的填写(比如,第1个插入的是36,它的散列地址为10,由于没有发生冲突,所以比较一次就存放在了地址为10的位置),求出其平均查找长度ASL。
散別地址
比較次数
27
■
36
「11
12
最终的散列表如图所示。
其平均查找长度ASL为:
ASL(线性探测)=(2+1+2+1+2+5+1+1+3+1+1+3)/12=1.92
比較次數
90
40
68
S1
..14)
97
33
11
22
24
23
16.已知由12个关键字组成的序列:
Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec
散列表长为13(地址为0~12),散列函数为:
h(key)=i/2,其中i为关键字中第1个字母在字母表里的序号。
(1)用线性探测法解决冲突,给出所构造的散列表以及查找成功的平均查找长度。
(2)用链地址法解决冲突,给出所构造的散列表以及查找成功的平均查找长度。
(1)用线性探测法解决冲突时,插入地址及比较次数如下:
h(Jan)=10/2=5,比较1次插入;
h(Feb)=6/2=3,比较1次插入;
h(Mar)=13/2=6,比较1次插入;
h(Apr)=1/2=3,比较1次插入;
h(May)=13/2=6,比较2次插入;
h(Jun)=10/2=5,比较4次插入;
h(Jul)=10/2=5,比较5次插入;
h(Aug)=1/2=0,比较2次插入;
h(Sep)=19/2=9,比较2次插入;
h(Oct)=15/2=7,比较5次插入;
h(Nov)=14/2=7,比较6次插入;
h(Dec)=4/2=2,比较1次插入。
所以,构造的散列表如图所示。
123卸367&
9疋H口1#E3出
|ApfDwF亡右Jan|训axM呼JunJul駅pOctNw
平均查找长度为:
ASL=(1+1+1+1+2+4+5+2+2+5+6+1)/12=31/12~2.6
(2)用链地址法解决冲突时,构造的散列表如图所示。
}}
18.已知待排的关键字序列:
法时每趟的图示过程。
采用直接插入排序方法时每趟的图示过程如下。
初樁状态*po]
S3
99
65
32
91宾速s描:
po
旳
第2况招描;
[70
83
V
9刃
第3戎扫描:
[击
70
99]
第4央出描:
[10
第$夫扌討取[1Q
知]
第右丈扌三才苗:
卩
超
L_?
第了欢_扫扌苗tP
J-
有关键字序列:
20、10、
30、15、
25、
5、35、
12、
27,
请
'
步步画出构造二叉查找
构造二叉查找树的过程如下:
(h)
(1)
树的过程。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 问答题
![提示](https://static.bdocx.com/images/bang_tan.gif)