《数据结构练习题》栈和队列

发布 2019-07-09 03:54:35 阅读 9992

栈和队列。

1 简述栈和线性表的区别。

2 简述栈和队列这两种数据结构的相同点和不同点。

3 如果进栈的元素序列为a,b,c,d,则可能得到的出栈序列有多少种?写出全部的可能序列。

4 如果进栈的元素序列为1,2,3,4,5,6,能否得到4,3,5,6,1,2和1,3,5,4,2,6的出栈序列?并说明为什么不能得到或如何得到。

5 写出下列程序段的运行结果(栈中的元素类型是char):

main( )

seqstack s,*p;

char x, y;

p = s;

initstack(p);

x = c′; y = k′;

push(p,x); push(p,′a′);push(p,y);

x = pop(p);

push(p,′t′);push(p,x);

x = pop(p);

push(p,′s′);

while(!empty(p))

y = pop(p);

printf(″%c″,y);}

printf(″%c\n″,x);

6 将一个非负十进制整数转换成二进制数,用非递归算法和递归算法来实现。

7 写一算法将一顺序栈中的元素依次取出,并打印元素值。

8 设单链表中存放着n个字符,试编一算法,判断该字符串是否有中心对称关系,例如xyzzyx,xyzyx都算是中心对称的字符串。

9 写出下列程序段的运行结果(队列中的元素类型是char):

main( )

seqqueue a, *q;

char x, y;

q = a;

x=′e′; y=′c′;

initqueue(q);

enqueue(q,′h′);enqueue(q,′r′);enqueue(q,y);

x = dequeue(q);

enqueue(q,x);

x = dequeue(q);

enqueue(q,′a′);

while(!empty(q))

y = dequeue(q);

printf(″%c″,y);}

printf(″%c\n″,x);

10 写一算法将一链队列中的元素依次取出,并打印这些元素值。

数据结构实验队列 附程序

实验三队列。一 实验目的。1.了解队列的特性。2.掌握队列的顺序表示和实现。3.掌握队列的链式表示和实现。二 实验内容。实验3.3队列的顺序表示和实现。编写一个程序实现顺序队列的各种基本运算 采用循环队列 并在此基础上设计一个主程序,完成如下功能 1 初始化队列。2 建立顺序队列。3 入队。4 出队...