保捱科技网
您的当前位置:首页数据结构作业3

数据结构作业3

来源:保捱科技网
第3章 栈和队列

【书面作业】

1. 简述以下算法的功能(栈的元素类型SElemType为int)。 (1) status algo1(Stack S) { int i ,n ,A[255]; n=0;

while (! StackEmpty(S) ) { n++; Pop(S,A[n]);}; for (i=1;i<=n;i++) Push(S,A[i]); }

(2) status algo2(Stack S, int e) { Stack T;int d; InitStack(T);

while (!StackEmpty(S)) { Pop(S,d);

if (d!=e) Push(T,d); }

while (!StackEmpty(T)) { Pop(T,d); Push(S,d); } }

2.写出以下程序段的输出结果(队列中元素类型QElemType为char)。 void main( ) {

Queue Q; InitQueue(Q); Char x=’e’,y=’c’;

EnQueue(Q,’h’); EnQueue(Q,’r’);EnQueue(Q,y); DeQueue(Q,x);EnQueue(Q,x); DeQueue(Q,x);EnQueue(Q,’a’); while (!QueueEmpty (Q)) { DeQueue(Q,y); printf(y); }

printf(x); }

3.有6个元素a,b,c,d,e,f依次进栈,允许任何时候出栈,能否得到下列出栈序列?

(1)cdbefa (2)abedfc (3) dceabf (4)baefcd (5)abcdef

4.用一维数组a[7]顺序存储一个循环队列,队首和队尾指针分别用front和rear表示,当前队列中已有5个元素:23,45,67,80,34,其中,23为队首元素,front的值为3,请画出对应的存储状态,当连续做4次出队运算后,再

让15,36,48元素依次进队,请再次画出对应的存储状态。

【上机作业】

1. 试写一个将某十进制数转化为其他任意进制数的算法。 2. 试写一个判别表达式中开、闭括号是否配对出现的算法。 3. 教材P上循环队列算法实现。

因篇幅问题不能全部显示,请点此查看更多更全内容