栈和队列是操作受限的线性表,逻辑结构仍然是线性结构,栈又可以分为顺序栈、链栈、共享栈;队列又可以分为循环队列、链式队列和双端队列。栈属于后进先出的线性表,而队列属于先进先出的线性表。
在实际问题中,栈和队列是很好的解决问题的工具。可以把栈和队列的声明和操作写的很清晰。以顺序栈为例:
(1)声明一个栈并初始化:Elemtype stack[maxsize];int top=-1;
(2)元素进栈:stack[++top]=x;
(3)元素x出栈:x=stack[top--];
链式栈中同样只需定义一个结构体,然后摘取必要的语句组合在函数代码当中即可。