最新数据结构形成性考核答案作业14Word文档下载推荐.docx
- 文档编号:22510541
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:25
- 大小:194.84KB
最新数据结构形成性考核答案作业14Word文档下载推荐.docx
《最新数据结构形成性考核答案作业14Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《最新数据结构形成性考核答案作业14Word文档下载推荐.docx(25页珍藏版)》请在冰豆网上搜索。
next=p3.
(1)p=q->
next
(2)q->
next=p->
五、完成:
实验1――线性表
根据实验要求(见教材P201-202)认真完成本实验,并提父实验报告。
作业2答案
、单项选择题
C
2.
B3
.
A4
C5
.B
6
.A
7.B8
.C9.
A
10.
11
12
.C
13
14
15.
16
.C17.
B18.
19.
C20.
D
21
22
.D
23
24
25.
26
.A27.
C28.D
29
30.C
31
.A32
1.后进先出
2.下一个
3.增1增1
4.假上溢
5.
栈是否满s->
top=MAXSIZE-1栈顶指针栈顶对应的数组元素栈是否空s->
top=-1栈顶元素修改栈顶指针
6.bceda
7.终止条件递归部分
8.LU->
front==LU->
rear
9.运算符操作数ab+c/fde/--
10.s->
next=h;
11.h=h->
next;
12.r->
next=s;
13.f=f->
14.字符
15.顺序存储方式链式存储方式
16.0空格字符的个数
17.特殊稀疏
18.()(())2
19.((d,e,f))
20.串长度相等且对应位置的字符相等
21.i(i-1)/2+j
22.行下标、列下标、非零元素值
1.简述栈和一般线性表的区别。
栈是一种先进后出的线性表,栈的插入和删除操作都只能在栈顶进行,而一般的线性表可以在线性表的任何位置进行插入和删除操作。
2.简述队列和一般线性表的区别。
队列是一种先进先出的线性表,队列的插入只能在队尾进行,队列的删除只能在队头进行,而一般的线性表可以在线性表的任何位置进行插入和删除操作。
3.链栈中为何不设头结点?
因为链栈只在链头插入和删除结点,不可能在链表中间插入和删除结点,算法实现很简单,所以一般不设置头结点。
4.利用一个栈,则:
(1)如果输入序列由A,B,C组成,试给出全部可能的输出序列和不可能的输出序列。
(2)如果输入序列由A,B,C,D组成,试给出全部可能的输出序列和不可能的输出序列。
(1)
栈的操作特点是后进先出,
因此输出序列有:
A入,
A出,
B入,
B出,
C入C出,输出序列为
ABC。
C入,
C出,
输出序列为
ACB。
C入,
BAC。
BCA。
A入,
CBA。
由A,B,C组成的数据项,除上述五个不同的组合外,还有一个C,A,B组合。
但不可能先把C出栈,
再把A出栈,(A不在栈顶位置),最后把B出栈,所以序列CAB不可能由输入序列A,B,C通过栈得到。
(2)按照上述方法,可能的输出序列有:
ABCD,ABDC,ACBD,ACDB,ADCB,BACD,BADC,BCAD,BCDA,BDCA,CBAD,CBDA,CDBA,DCBA。
不可能的输出序列有:
DABC,ADBC,DACB,DBAC,BDAC,DBCA,DCAB,CDAB,CADB,CABD
5.用S表示入栈操作,X表示出栈操作,若元素入栈顺序为1234,为了得到1342出栈顺序,相应的
S和X操作串是什么?
应是SXSSXSXX各操作结果如下:
S1
入栈
X
1
出栈
输出序列:
S
2
3
4
134
1342
6•有5个元素,其入栈次序为:
AB、C、DE,在各种可能的出栈次序中,以元素C、D最先的次
序有哪几个?
从题中可知,要使
C第一个且D第二个出栈,应是A入栈,B入栈,C入栈,C出栈,D入栈。
之
后可以有以下几种情况:
所以可能的次序有:
CDBAE,CDBEA,CDEBA
7.写出以下运算式的后缀算术运算式
⑴3x2+x-1/x+5
⑵(A+B)*C-D/(E+F)+G答;
对应的后缀算术运算式
⑴3x2A*x+1x/-5+
⑵AB+C*DEF+/-G+
8.简述广义表和线性表的区别和联系。
广义表是线性表的的推广,它也是n(n>
0)个元素a1,a2…ai…an的有限序列,其中ai或者是原子或
者是一个广义表。
所以,广义表是一种递归数据结构,而线性表没有这种特性,线性表可以看成广义表的特殊情况,当ai都是原子时,广义表退化成线性表。
四、程序填空题
1.
(1)q_>
front_>
(2)free(p);
(3)q->
rear=q->
front
五、综合题
出队序列是e2,e4,e3,e6,e5,e1的过程:
⑴el入栈(栈底到栈顶元素是e1)
⑵e2入栈(栈底到栈顶元素是e1,e2)
⑶e2出栈(栈底到栈顶元素是e1)
⑷e3入栈(栈底到栈顶元素是e1,e3)
⑸e4入栈(栈底到栈顶元素是e1,e3,e4)
⑹e4出栈(栈底到栈顶元素是e1,e3)
⑺e3出栈(栈底到栈顶元素是e1)
⑻e5入栈(栈底到栈顶元素是e1,e5)
⑼e6入栈(栈底到栈顶元素是e1,e5,e6)
⑽e6出栈(栈底到栈顶元素是e1,e5)
(11)e5出栈(栈底到栈顶元素是el)
(12)el出栈(栈底到栈顶元素是空)
栈中最多时有3个元素,所以栈S的容量至少是3。
2.
算法设计如下:
/*只有一个指针rear的链式队的基本操作*/
#inelude<
stdio.h>
typedefcharelemtype;
structnode/*定义链队列结点*/
{
elemtypedata;
structnode*next;
};
typedefstructqueue/*定义链队列数据类型*/
structnode*rear;
}LinkQueue;
voidinitqueue(LinkQueue*Q)/*初始化队列*/
Q=(structqueue*)malloc(sizeof(structqueue));
Q->
rear=NULL;
入队算法*/
}
voidenqueue(LinkQueue*Q,elemtypex)/*{
structnode*s,*p;
s=(structnode*)malloc(sizeof(structnode));
s->
data=x;
if(Q->
rear==NULL)/*原为空队时*/{
rear=s;
s->
else/*原队不为空时*/{
p=Q->
rear->
/*p指向第一个结点*/Q->
/*将s到队尾*/Q->
/*Q->
rear指向队尾*/s->
next=p;
voiddelqueue(LinkQueue*Q)/*出队算法*/
structnode*t;
rear==NULL)
printf("
队列为空!
\n"
);
return(0);
elseif(Q->
next==Q->
rear)/*
t=Q->
rear;
else/*有多个结点时*/
/*tQ->
next=t->
/*}free(t);
只有一个结点时*/
指向第一个结点*/引成循环链*/
elemtypegethead(LinkQueue*Q)/*{
else
return(Q->
next->
data);
}
取队首元素算法*/
intemptyqueue(LinkQueue*Q)/*
rear==NULL)return
(1);
/*
elsereturn(0);
/*不为空,则返回
判断队列是否为空算法
为空,则返回true*/flase*/
*/
voiddispqueue(LinkQueue*Q)/*
显示队列中元素算法*/
structnode*p=Q->
printf("
队列元素:
"
while(p!
=Q->
rear)
%c"
p->
p=p->
}printf("
%c\n"
六、完成:
实验2――栈、队列、递归程序设计
根据实验要求(见教材P03)认真完成本实验,并提交实验报告。
作业3答案
1.B2.B3.D4.C5.B6.A7.A8.C9.A10.D
11.A12.C13.C14.B15.B16.C17.B18.C19.A20.B
21.D22.B23.B24.B25.C26.A27.A28.C
1.子树树木或后继结点数2.树中所有结点的度的最大值3.分支结点非终端结点4.叶子结点终端结点5.子树的根后继结点孩子结点6.祖先
7.树中结点的最大层数
8.log2n1
9.根结点左子树右子树
10.左子树根结点右子树
11.左子树右子树根结点12.权
13.带权路径长度之和
14.最优二叉树最小的二叉树15.69
16.2m-1
17.多对多
18.所有顶点一次
19.先序
20.按层次
21.n2
22.邻接矩阵邻接表
23.2(n-1)
24.n-1
25.栈
3•答
⑴已知深度为k的二叉树最多有2k-1个结点(K>
1),
29-1<
892<
210-1,故树的高度为10
⑵对于完全二叉树来说,度为1的结点只能是0或1
因为n=n0+n1+n2和n0=n2+1
得:
设n仁0,892=n0+0+n2=2n2+1得n2不为整数出错
设n仁1,892=n0+1+n2=2n2+2
得n2=445tn0=n2+仁446
叶子结点数为446。
⑶由⑵得单支结点数为1
⑷对于n个结点的完全二叉树,最后一个树叶结点,即序号为n的叶结点其双亲结点即为最后
一个非终端结点,
序号为892/2=446。
4.
(1)先序序列和中序序列相同的二叉树为空树或任一结点均无左孩子的非空二叉树
2)中序和后序序列相同的二叉树为空树或任一结点均无右孩子的非空二叉树
(3)先序和后序序列相同的二叉树为空树或仅有一个结点
5.
(1)哈夫曼树如图B-4所示。
JJL
■
◎、1
30
20
I
•.丿
B
10
.iA
7
5
H
F
G
图B-4
15
D0
8
E
(2)其带权路径长度WPL直为270。
(3)每个字符的哈夫曼编码为:
A:
100,
1:
01
6•答
(1)深度优先遍历:
v1,v2,v3,v8,v5,v7,v4,v6
广度优先遍历:
v1,v2,v4,v6,v3,v5,v7,v8
(2)G的拓扑序列为:
v1,v2,v4,v6,v5,v5,v3,v5,v7,v8
⑶最短路径为:
v1,v2,v5,v7,v8
g1的图示和图g1的邻接表如下图所示。
图G的邻接矩阵如下图所示:
③V1V2、V3V4、V5的度分别为:
2,3,2,3,2
四、程序分析题
1.
(1)returnc1+1
(2)NodeLevel(BT->
right,X)
(3)(c2>
=1)returnc2+1
2.
(1)for(j=0;
j<
n;
j++)
(2)dfstree(GA,j,n);
五、算法设计题1.写一个将一棵二叉树复制给另一棵二叉树的算法。
defineNULL0
typedefstructbtnode
structbtnode*lchild,*rchild;
}bitnode,*bitree;
bitree*CopyTree(bitnode*p)
/*复制一棵二叉树*/bitnode*t;
if(p!
=NULL)
t=(bitnode*)malloc(sizeof(bitnode));
t->
data=p->
data;
t->
lchild=CopyTree(p->
lchild);
rchild=CopyTree(p->
rchild);
return(t);
elsereturn(NULL);
}/*CopyTree*/
intBTreeLeafCount(structBTreeNode*BT)
if(BT==NULL)return0;
elseif(BT->
left==NULL&
&
BT->
right==NULL)return1;
elsereturnBTreeLeafCount(BT->
left)+BTreeLeafCount(BT->
right);
实验3――栈、队列、递归程序设计实验4——图的存储方式和应用
根据实验要求(见教材F2O3)认真完成本实验,并提交实验报告。
作业4答案
1.D2.C3.B4.C5.D6.A7.C8.D9.B10.D
11C12C13A14C15D16B17B18D19D20A
21D22D23A24A25C26C27B28A29B30C
1哈希表查找法
2数据项的值记录
3主关键字
4数学期望值
5顺序
6二分查找升序或降序排列
7顺序存储结构
8索引顺序查找顺序查找
9均小于根结点的值均大于根结点的值二叉排序树
10自变量函数值
119,14,16,17
12部排序外部排序
13交换排序
143
1548
16堆排序快速排序
17主关键字
18关键字相等的记录
19n-1,n-j
20堆尾堆顶向下
三、综合题
1已知序列(70,83,100,65,10,32,7,9),请写出对此序列采用插入排序法进行升序排序时各趟的结果。
原始序列:
(70),83,100,65,10,32,7,9
15,8),请写出对此序列采用归并排序法进行升序排序
第1趟:
(70,83),100,65,10,32,7,9
第
2趟:
(70,
83,
100
),65,10,
32,
7,
9
3趟:
(65,
70,
100),10,
4趟:
(10,
65,
83,100),
5趟:
70,83,10
0),
6趟:
(7,
10,
65,70,83,
100),
7趟:
9,1
0,3
2,65,70,
100)
2已知序列(10,18,4,3,6,12,1,9,时各趟的结果。
答:
10,
18,4,
3,6,
12,1,
9,
15,
第1趟:
[10
18][3
4][6
12][1
9][8
1
5]
第2趟:
[3,
4,10,
18,][
6,
12][
8,
15]
第3趟:
12,
第4趟:
[1,
3,4,6
i,8,
18]
3.已知序;
列(
17,18,
60,4
0,
乙3
2,
73,
65,
85)采用冒泡排序法排序的各趟的结果如下
原始初始:
17,
18,60,
40,
7,
32,
85
1趟:
40
7,
60,
2趟:
乙
3趟:
17,7,
18,
4趟:
7,17,
5趟:
已知序列(503,
87,
512,
61,
908
17
0,897,275,653,462)请给出采用快速排序法对该序
列作升序排列时的每一趟结果。
503,87,512,61,908,170,897,275,653,462第1趟:
[462,87,275,61,170]503[897,908,653,512]第2趟:
[170,87,275,61]462,503[897,908,653,512]第3趟:
[87,61]170[275]462,503[897,908,653,512]
第4趟:
61[87]170[275]462,503[897,908,653,512]
61
87,
170,
[275]
462
6趟:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 数据结构 形成 考核 答案 作业 14