第3章作业

发布 2020-04-15 22:14:28 阅读 6516

第3章栈和队列作业。

1 若用一个大小为6的数组来实现循环队列,且当rear和front的值分别为0和3时,从队列中删除一个元素,再加入两个元素后,rear和front的值分别为多少?(复旦大学98年)

2和42 设栈s和队列q的初始状态为空,元素e1, e2,e3,e4,e5和e6依次通过栈s,一个元素出栈后即进入队列q,若6个元素出对的序列是e2,e4, e3,e6, e5、e1 则栈s的容量至少应该是多少?3 (南京理工2023年)

3 已知一算术表达式的中缀形式为a+b*c-d/e,后缀形式为abc*+de/-,则其前缀形式为什么? (北航99年)

+a*bc/de

4 用s表示入栈操作,x表示出栈操作,若元素入栈顺序为1234,为了得到1324出栈顺序,相应的s和x操作串为什么?

西南交大2023年)

sxssxxsx

5 请利用两个栈s1和s2来模拟一个队列,已知栈的三个运算定义如下:push(st,x):元素x入st栈;pop(st,x):

st栈顶元素出栈,赋给变量x;sempty(st):判st栈空否。那么如何用栈的运算来实现该队列的三个运算:

enqueue:插入一个元素入队列;dequeue:删除一个元素出队列;queue_empty:

判队列为空。(请写明算法的思想及必要的注释)。(西安电子科大01年)

由于队列是先进先出,而栈是先进后出,所以只有经过两个栈,即先在第一个栈里先进后出,再经过第二个栈后进先出来实现队列的先进先出。因此用两个栈模拟一个队列运算就是用一个栈作为输入,而另一个栈作为输出。当进队列时,总是将数据进入到作为输入的栈中。

在输出时,如果作为输出的栈已空,则从输入栈将已输入到输入栈的所有数据压入输出栈中,然后由输出栈输出数据;如果作为输出的栈不空,则就从输出栈输出数据。显然,只有在输入、输出栈均为空时队列才为空。

一个栈s1用来插入元素,另一个栈s2用来删除元素,删除元素时应将前一栈s1中的所有元素读出,然后进入到第二个栈s2中,算法描述如下:

void enqueue(s1,x)

stack s1;

int x;

if(s1->top==0)

printf(“队列上溢“);

elsepush(s1,x);

void dequeue(s1,s2,x)

stack s1,s2;

int x;

s->top=0; /将s2清空。

while (!empty(s1) /将s1的所有元素退栈后压入s2,此时栈s1为空。

push(s2,pop(s1));

pop(s2,x); 弹出栈s2的栈顶元素(对首元素)并赋给x

while (!empty(s2) /将剩于元素重新压入栈s1恢复为原s1中的顺序。

push(s1,pop(s2));

int queue_empty(s1);

stack s1;

if empty(s1)

return(1);

elsereturn(0);

第3章作业

第3章统计数据的整理与显示。一 判断题 把 或 填在题后的括号里 1 能够对统计总体进行分组,是由统计总体中的各个单位所具有的 同质性 特点决定的。2 按数量标志分组,各组的变量值能准确地反映社会经济现象性质上的区别。3 按数量标志分组所形成的变量数列就是次数分布数列。4 由于离散型变量不能用小数表...

第3章作业

6 已知片内ram中,30h 38h,38h 40h,40h 48h,48h 90h。请分析下面指令,说明源操作数的寻址方式以及按顺序执行每条指令的结果。mov a 40h直接寻址方式a 40h 48h mov r0 a寄存器寻址方式r0 a 48h mov p1 f0h 立即寻址方式p1 0f0h...

第3章作业

微观经济学 第三章 消费者行为理论作业。一 单选题。a1 以下 项指的是边际效用。a 张某吃了第二个面包,满足程度从10个效用单位增加到了15个单位,增加了5个效用单位。b 张某吃了两个面包,共获得满足15个效用单位 c 张某吃了四个面包后再不想吃了 d 张某吃了两个面包,平均每个面包带给张某的满足...