1、华南农业大学数据结构上机答案实验华南农业大学数据结构上机答案实验 8583 顺序栈的基本操作时间限制:1000 内存限制:1000K提交次数:530 通过次数:212 题型: 编程题 语言: 无限制创建一个空的顺序栈,并实现栈的入栈、出栈、返回栈的长度、返回栈顶元素、栈的遍历等基本算法。请将下; ; 1 0 100 存储空间初始分配量 10 存储空间分配增量 ; 定义栈元素类型 ; 是函数的类型,其值是函数结果状态代码,如等 *; 在栈构造之前和销毁之后,的值为 *; 栈顶指针 ; 当前已分配的存储空间,以元素为单位; 顺序栈 ( ) 构造一个空栈S,该栈预定义大小为 请补全代码(*)(*()
2、;() ; ; ( e) 在栈S中插入元素e为新的栈顶元素 请补全代码()(*)(,()*();() ;*; ; ( ) 若栈不空,则删除S的栈顶元素,用e返回其值,并返回;否则返回 请补全代码() ;*; ; ( ) 若栈不空,则用e返回S的栈顶元素,并返回;否则返回 请补全代码() ;*(1); ; ( S) 返回栈S的元素个数 请补全代码 ; ( S) 从栈顶到栈底依次输出栈中的每个元素 *p = ( *)(); p = ; 请填空()( ;); 请填空( : ;);() 请填空( ;, *p); ; 请填空(;); ; () a; S; x, e;(S) 判断顺序表是否创建成功,请填空
3、( .;);(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 题型: 编程题 语言: 无限制创建一个空的循环队列,并实现入队、出队、返回队列的长度、返回队头元素、队列的遍历等基本算法。请将下面
4、的程序补充完整。; ; 1 0 ; 是函数的类型,其值是函数结果状态代码,如等 ; 100 最大队列长度(对于循环队列,最大队列长度要减1) *; 初始化的动态分配存储空间 ; 头指针,若队列不空,指向队列头元素 ; 尾指针,若队列不空,指向队列尾元素的下一个位置; ( ) 构造一个空队列Q,该队列预定义大小为 请补全代码(*)(*();() ;0; ; ( e) 插入元素e为Q的新的队尾元素 请补全代码(1) ;(1); ; ( , ) 若队列不空, 则删除Q的队头元素, 用e返回其值, 并返回; 否则返回 请补全代码() ;(1); ; ( Q, ) 若队列不空,则用e返回队头元素,并返回
5、,否则返回 请补全代码() ; ; ( Q) 返回Q的元素个数 请补全代码 (); ( Q) 若队列不空,则从队头到队尾依次输出各个队列元素,并返回;否则返回. i;()( ;); 请填空( : ;);() 请填空( i); 请填空i = 1; 请填空(;); ; () a; e S; x, e;(S) 判断顺序表是否创建成功,请填空( .;);(1)(;1 n2 n3 n4 n5 n0 :;);();(a) 1: (;, );() ( !;); 判断入队是否合法,请填空 ( !;, x); ; 2: () ( !;); 判断出队是否合法,请填空 ( !;, e); 3: ()( !;); 判
6、断 是否合法,请填空 ( !;, e); 4: ( !(S); 请填空; 5: (S); 请填空; 0: 1;8585 栈的应用进制转换时间限制:1000 内存限制:1000K提交次数:320 通过次数:203 题型: 编程题 语言: 无限制利用顺序栈的基本操作算法,编写满足下列要求的数制转换程序:对于输入的任意一个非负十进制整数,打印输出与其等值的八进制数。 ; ; -1 1 0 20 存储空间初始分配量 10 存储空间分配增量 ; 定义栈元素类型 ; 是函数的类型,其值是函数结果状态代码,如等 *; 在栈构造之前和销毁之后,的值为 *; 栈顶指针 ; 当前已分配的存储空间,以元素为单位;
7、顺序栈 ( ) 构造一个空栈S,该栈预定义大小为( *)(*();()(); ; ( e) 在栈S中插入元素e为新的栈顶元素()( *)(,()*();()();*; ; ( S) 从栈顶到栈底依次输出栈中的每个元素 *p; p = ; 请填空()( ;); 请填空; () 请填空 (;, *p); 请填空(;, *p);(;); ; ( x) ;(0)(8);(8); ; () a; S; x, e;(S); (;, );(); (S);8586 括号匹配检验时间限制:1000 内存限制:1000K提交次数:679 通过次数:182 题型: 编程题 语言: 无限制利用栈编写满足下列要求的括号
8、匹配检验程序:假设表达式中允许包含两种括号:圆括号和方括号,其嵌套的顺序随意,即()或()等为正确的格式,(或()或()均为不正确的格式。输入一个包含上述括号的表达式,检验括号是否配对。本题给出部分()函数,要求将()函数补充完整,并完成整个程序。 ; ; () 1 0 1 0 ; 是函数的类型,其值是函数结果状态代码,如等 10 存储空间初始分配量 2 存储空间分配增量 *; 在栈构造之前和销毁之后,的值为 *; 栈顶指针 ; 当前已分配的存储空间,以元素为单位; 顺序栈 ( )(*)(*();() ; ; ( S)() ; ; ( e)()(*)(,()*();() ;*; ; ( )()
9、 ;*; ; () 对于输入的任意一个字符串,检验括号是否配对 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 题
10、型: 编程题 语言: 无限制利用栈编写简单的行编辑程序:接受用户从终端输入的程序或数据,在输入过程中,允许用户输入出差错,并在发现有误时可以及时更正。例如:当用户发现刚刚键入的一个字符是错的时,可以补进一个退格符“#”,以表示前一个字符无效;如果发现当前键入的行内差错较多或难以补救,则可以键入一个退行符“”,以表示当前行中的字符均无效。例如:假设从终端接受了这样两行字符: (*s) (*); 则实际有效的是下列两行: (*s) (*); 本题目给出部分函数,要求将行编辑函数补充完整,并完成整个程序。 ; ; () 1 0 1 0 ; 是函数的类型,其值是函数结果状态代码,如等 10 存储空间初
11、始分配量 2 存储空间分配增量 *; 在栈构造之前和销毁之后,的值为 *; 栈顶指针 ; 当前已分配的存储空间,以元素为单位; 顺序栈 ( ) 构造一个空栈S(*)(*();() ; ; ( S) 若栈S为空栈,则返回,否则返回() ; ; ( ) 把S置为空栈; ; ( ) 销毁栈S,S不再存在();0; ; ( e) 插入元素e为新的栈顶元素()(*)(,(S. )*();() ;*; ; ( ) 若栈不空,则删除S的栈顶元素,用e返回其值,并返回;否则返回() ;*; ; ( (*)() 从栈底到栈顶依次对栈中每个元素调用函数()。 一旦()失败,则操作失败()(*);(;); ; (
12、c)(); ; () 利用字符栈s,从终端接收一行并送至调用过程的数据区。算法3.2 s; ; ;(s);();();(1) ();(39;39;)() 3939(); 仅当栈非空时退栈 3939(s); 重置s为空栈 (); 有效字符进栈(); 从终端接收下一个字符(); 将从栈底到栈顶的栈内字符输出(s); 重置s为空栈(s); ()(); 8588 表达式求值时间限制:1000 内存限制:1000K提交次数:182 通过次数:84 题型: 编程题 语言: 无限制利用栈编写表达式求值程序:输入含有“+”、“-”、“*”、“/”四则运算的表达式,其中负数要用(0-正数)表示,并以=结束。要求
13、输出表达式的值(两运算符号的优先关系见教材表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) ; c7=3939393939;*39393939;(3939;)393
14、939; d77=3939393939393939393939393939;,3939393939393939393939393939;,3939393939393939393939393939;,3939393939393939393939393939;,3939393939393939393939393939;,3939393939393939393939393939;,3939393939393939393939393939;,;(3939;) 3939;(0i)(0j) dij; ( b) m;(3939;);(3939;);(39;*39;)*b;(3939;); m;() ; ;
15、b; *; 1 a; 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; a10003;();(0)(0;2)( ij);(a02=01)ai2101112i0;(ai2;0)ai2=0;i2;(.2;,(); 0;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1