华南农业大学数据结构上机答案实验.docx
- 文档编号:25505015
- 上传时间:2023-06-09
- 格式:DOCX
- 页数:31
- 大小:18.11KB
华南农业大学数据结构上机答案实验.docx
《华南农业大学数据结构上机答案实验.docx》由会员分享,可在线阅读,更多相关《华南农业大学数据结构上机答案实验.docx(31页珍藏版)》请在冰豆网上搜索。
华南农业大学数据结构上机答案实验
华南农业大学数据结构上机答案实验
8583顺序栈的基本操作
时间限制:
1000内存限制:
1000K
提交次数:
530通过次数:
212
题型:
编程题语言:
无限制
创建一个空的顺序栈,并实现栈的入栈、出栈、返回栈的长度、返回栈顶元素、栈的遍历等基本算法。
请将下
;
;
1
0
100存储空间初始分配量
10存储空间分配增量
;定义栈元素类型
;是函数的类型,其值是函数结果状态代码,如等
{
*;在栈构造之前和销毁之后,的值为
*;栈顶指针
;当前已分配的存储空间,以元素为单位
};顺序栈
()
{
构造一个空栈S,该栈预定义大小为
请补全代码
(*)(*());
();
;
;
;
}
(e)
{
在栈S中插入元素e为新的栈顶元素
请补全代码
()
{(*)(,()*());
();
;
;
}
*;
;
}
()
{
若栈不空,则删除S的栈顶元素,用e返回其值,并返回;否则返回
请补全代码
();
*;
;
}
()
{
若栈不空,则用e返回S的栈顶元素,并返回;否则返回
请补全代码
();
*
(1);
;
}
(S)
{
返回栈S的元素个数
请补全代码
;
}
(S)
{
从栈顶到栈底依次输出栈中的每个元素
*p=(*)(());
p=;请填空
()(;);请填空
{
(:
;);
;
()请填空
{
(;,*p);
;请填空
}
}
(;\;);
;
}
()
{
a;
S;
x,e;
((S))判断顺序表是否创建成功,请填空
{
(.\;);
}
(1)
{
(;1\n2\n3\n4\n5\n0\:
\;);
();
(a)
{
1:
(;,);
(())(!
\;);判断是否合法,请填空
(
!
\;,x);
;
2:
(())(!
\;);判断是否合法,请填空
(!
\;,e);
;
3:
(())(!
\;);判断是否合法,请填空
(!
\;,e);
;
4:
(!
\(S));请填空
;
5:
(S);请填空
;
0:
1;
}
}
}
8584循环队列的基本操作
时间限制:
1000内存限制:
1000K
提交次数:
366通过次数:
157
题型:
编程题语言:
无限制
创建一个空的循环队列,并实现入队、出队、返回队列的长度、返回队头元素、队列的遍历等基本算法。
请将下面的程序补充完整。
;
;
1
0
;是函数的类型,其值是函数结果状态代码,如等
;
100最大队列长度(对于循环队列,最大队列长度要减1)
{
*;初始化的动态分配存储空间
;头指针,若队列不空,指向队列头元素
;尾指针,若队列不空,指向队列尾元素的下一个位置
};
()
{
构造一个空队列Q,该队列预定义大小为
请补全代码
(*)(*());
();
0;
;
}
(e)
{
插入元素e为Q的新的队尾元素
请补全代码
(
(1));
[];
(1);
;
}
(,)
{
若队列不空,则删除Q的队头元素,用e返回其值,并返回;否则返回
请补全代码
();
[];
(1);
;
}
(Q,)
{
若队列不空,则用e返回队头元素,并返回,否则返回
请补全代码
();
[];
;
}
(Q)
{
返回Q的元素个数
请补全代码
();
}
(Q)
{
若队列不空,则从队头到队尾依次输出各个队列元素,并返回;否则返回.
i;
;
()(;);请填空
{
(:
;);
()请填空
{
([i]);请填空
i=1;请填空
}
}
(;\;);
;
}
()
{
a;
eS;
x,e;
((S))判断顺序表是否创建成功,请填空
{
(.\;);
}
(1)
{
(;1\n2\n3\n4\n5\n0\:
\;);
();
(a)
{
1:
(;,);
(())(!
\;);判断入队是否合法,请填空
(!
\;,x);
;
2:
(())(!
\;);判断出队是否合法,请填空
(!
\;,e);
;
3:
(())(!
\;);判断是否合法,请填空
(!
\;,e);
;
4:
(!
\(S));请填空
;
5:
(S);请填空
;
0:
1;
}
}
}
8585栈的应用——进制转换
时间限制:
1000内存限制:
1000K
提交次数:
320通过次数:
203
题型:
编程题语言:
无限制
利用顺序栈的基本操作算法,编写满足下列要求的数制转换程序:
对于输入的任意一个非负十进制整数,打印输出与其等值的八进制数。
;
;
;
-1
1
0
20存储空间初始分配量
10存储空间分配增量
;定义栈元素类型
;是函数的类型,其值是函数结果状态代码,如等
{
*;在栈构造之前和销毁之后,的值为
*;栈顶指针
;当前已分配的存储空间,以元素为单位
};顺序栈
()
{
构造一个空栈S,该栈预定义大小为
(*)(*());
()
();
;
;
;
}
(e)
{
在栈S中插入元素e为新的栈顶元素
()
{
(*)(,()*());
()
();
;
;
}
*;
;
}
(S)
{
从栈顶到栈底依次输出栈中的每个元素
*p;
p=;请填空
()
(;);请填空
{
;
}
()请填空
{
(;,*p);
;请填空
}
(;,*p);
(;\;);
;
}
(x)
{
;
(0)
{
(8);
(8);
}
;
}
()
{
a;
S;
x,e;
(S);
(;,);
();
(S);
}
8586括号匹配检验
时间限制:
1000内存限制:
1000K
提交次数:
679通过次数:
182
题型:
编程题语言:
无限制
利用栈编写满足下列要求的括号匹配检验程序:
假设表达式中允许包含两种括号:
圆括号和方括号,其嵌套的顺序随意,即([]())或[([][])]等为正确的格式,[(]或([())或(()])均为不正确的格式。
输入一个包含上述括号的表达式,检验括号是否配对。
本题给出部分()函数,要求将()函数补充完整,并完成整个程序。
;
;
;
;
;()
1
0
1
0
;是函数的类型,其值是函数结果状态代码,如等
10存储空间初始分配量
2存储空间分配增量
{
*;在栈构造之前和销毁之后,的值为
*;栈顶指针
;当前已分配的存储空间,以元素为单位
};顺序栈
()
{(*)(*());
();
;
;
;
}
(S)
{();
;
}
(e)
{(){
(*)(,()*());
();
;
;
}
*;
;
}
()
{();
*;
;
}
()
{对于输入的任意一个字符串,检验括号是否配对
s;
[80],*;
((s))初始化栈成功
{
(;请输入表达式\;);
();
;
(*p)没到串尾
(*p)
{
39;(39;:
39;[39(s,*p);
;左括号入栈,且
39;)39;:
39;]39((s))栈不空
{
();弹出栈顶元素
(*39;)3939;(39*39;]3939;[39;)
弹出的栈
顶元素与*p不配对
{
(39\;);
();
}
{
;
;跳出语句
}
}
栈空
{
(\;);
();
}
:
;其它字符不处理,指针向后移
}
((s))字符串结束时栈空
(\;);
(\;);
}
}
()
{
();
}
8587行编辑程序
时间限制:
1000内存限制:
1000K
提交次数:
578通过次数:
173
题型:
编程题语言:
无限制
利用栈编写简单的行编辑程序:
接受用户从终端输入的程序或数据,在输入过程中,允许用户输入出差错,并在发现有误时可以及时更正。
例如:
当用户发现刚刚键入的一个字符是错的时,可以补进一个退格符“#”,以表示前一个字符无效;如果发现当前键入的行内差错较多或难以补救,则可以键入一个退行符“@”,以表示当前行中的字符均无效。
例如:
假设从终端接受了这样两行字符:
(*s)(*);则实际有效的是下列两行:
(*s)(*);本题目给出部分函数,要求将行编辑函数补充完整,并完成整个程序。
;
;
;
;
;()
1
0
1
0
;是函数的类型,其值是函数结果状态代码,如等
10存储空间初始分配量
2存储空间分配增量
{
*;在栈构造之前和销毁之后,的值为
*;栈顶指针
;当前已分配的存储空间,以元素为单位
};顺序栈
()
{构造一个空栈S
(*)(*());
();
;
;
;
}
(S)
{若栈S为空栈,则返回,否则返回
();
;
}
()
{把S置为空栈
;
;
}
()
{销毁栈S,S不再存在
();
;
;
0;
;
}
(e)
{插入元素e为新的栈顶元素
(){
(*)(,(S.
)*());
();
;
;
}
*;
;
}
()
{若栈不空,则删除S的栈顶元素,用e返回其值,并返回;否则返回
();
*;
;
}
((*)())
{从栈底到栈顶依次对栈中每个元素调用函数()。
一旦()失败,则操作失败
()
(*);
(;\;);
;
}
(c)
{
();
;
}
()
{利用字符栈s,从终端接收一行并送至调用过程的数据区。
算法3.2
s;
;
;
(s);
();
();
(1)
{();
(39;\39;)
{
()
{
3939();
;仅当栈非空时退栈
3939(s);
;重置s为空栈
();有效字符进栈
}
();从终端接收下一个字符
}
();将从栈底到栈顶的栈内字符输出
(s);重置s为空栈
}
(s);
}
()
{
();
}
8588表达式求值
时间限制:
1000内存限制:
1000K
提交次数:
182通过次数:
84
题型:
编程题语言:
无限制
利用栈编写表达式求值程序:
输入含有“+”、“-”、“*”、“/”四则运算的表达式,其中负数要用(0-正数)表示,并以=结束。
要求输出表达式的值(两运算符号的优先关系见教材表3.1)。
此题目可选做。
;
;
1
0
1005
字符栈
;
{
a[];
;
};
(*s)
{
(1);
}
(*s)
{
(1);
}
(*x)
{
((s))
{;
[];
;
}
;
}
(*s,*x)
{
((s))
{
*[];
;
;
}
;
}
(*s)
{x;
((s))
{
[];
x;
}
;
}
整形栈
;
1
{
a[];
;
};
1(1*s)
{
(1);
}
1(1*s)
{
(1);
}
1(1*x)
{
(1(s))
{;
[];
;
}
;
}
1(1*s,*x)
{
(1(s))
{
*[];
;
;
}
;
}
1(1*s)
{x;
(1(s))
{
[];
x;
}
;
}
()
{
(4857)
;
;
}
(b)
{
;
c[7]={3939393939;*39393939;(3939;)393939;};
d[7][7]={
{3939393939393939393939393939;},
{3939393939393939393939393939;},
{3939393939393939393939393939;},
{3939393939393939393939393939;},
{3939393939393939393939393939;},
{3939393939393939393939393939;},
{3939393939393939393939393939;},
};
(3939;)3939;;
(0[i]){}
(0[j]){}
d[i][j];
}
(b)
{m;
(3939;)
;
(3939;)
;
(39;*39;)
*b;
(3939;)
;
m;
}
()
{
;
;
b;
*;
1a;
1*;
1;
1;
3939;;
();
();
(3939(())3939;)
{
(())
{
39;039;;
();
(())
{*1039;039;;
();
}
1();
}
(3939;)
{
();
(39;039;)
();
}
{
();
(())
{3939;:
();
();
;
3939;:
();
();
;
3939;:
1();
1();
();
();
1();
;
}
}
}
1();
(\);
();
1();
();
}
8590队列的应用——银行客户平均等待时间
时间限制:
1000内存限制:
1000K
提交次数:
176通过次数:
83
题型:
编程题语言:
无限制
某银行有一个客户办理业务站,在一天内随机地有客户到达,设每位客户的业务办理时间是某个范围内的值。
设只有一个窗口,一位业务人员,要求程序模拟统计在一天时间内,所有客户的平均等待时间。
模拟数据按客户到达的先后顺序依次由键盘输入,对应每位客户有两个数据,到达时刻和需要办理业务的时间。
;
()
{
0;
a[1000][3];
();
(0)
(0;2)
([
i][j]);
(a[0][2]=01)
{
a[i][2][1][0][1][1][1][2][i][0];
(a[i][2];0)
a[i][2]=0;
[i][2];
}
(.2;,());
0;
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 华南 农业大学 数据结构 上机 答案 实验