第三章 栈和队列
3.1 简述栈和线性表的差别。
3.2 简述队列和栈这两种数据类型的相同点和差异处。
3.3 写出下列程序段的输出结果(栈的元素类型SelemType为char)。 Void main( ) { Stack S; char x,y; InitStack(S); X=’c’;y=’k’;
Push(S,x); Push(S,’a’); Push(S,y); Pop(S,x); Push(S,’t’); Push(S,x); Pop(S,x); Push(S,’s’);
While (!StackEmpty(S)) {Pop(S,y); printf(y);} Printf(x); }
3.4写出下列程序段的输出结果(队列中的元素类型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.5 假设以带头结点的循环链表表示队列,并且只设一个指针指向队尾元素结点,试编写相应的队列初始化、入队列和出队列的算法。