华南农业大学数据结构上机答案实验.docx

上传人:b****3 文档编号:3897867 上传时间:2022-11-26 格式:DOCX 页数:27 大小:18.17KB
下载 相关 举报
华南农业大学数据结构上机答案实验.docx_第1页
第1页 / 共27页
华南农业大学数据结构上机答案实验.docx_第2页
第2页 / 共27页
华南农业大学数据结构上机答案实验.docx_第3页
第3页 / 共27页
华南农业大学数据结构上机答案实验.docx_第4页
第4页 / 共27页
华南农业大学数据结构上机答案实验.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

华南农业大学数据结构上机答案实验.docx

《华南农业大学数据结构上机答案实验.docx》由会员分享,可在线阅读,更多相关《华南农业大学数据结构上机答案实验.docx(27页珍藏版)》请在冰豆网上搜索。

华南农业大学数据结构上机答案实验.docx

华南农业大学数据结构上机答案实验

华南农业大学数据结构上机答案实验

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;

}

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

当前位置:首页 > 工作范文 > 演讲主持

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

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