c语言的栈和队列
栈是一种先进后出的数据结构。它被限定为只能在一端进行插入和删除操作。它是一种运算受限的线性表,它的能进行插入和删除的一端被称为栈顶,另一端被称为栈底。向一个栈插入新元素又称进栈,入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。
栈的实现很简单,只需要一个一维数组和一个指向栈顶的变量top即可,我们通过top来对栈进行插入和删除操作。
例如:回文字符串就可以利用栈来解决:
队列是一种先进先出的思想,他只允许在队列的首部进行删除操作,在尾部进行插入,如果首位重合了说明该队列没有元素,即为空队列。
队列和栈一样,是一种操作受限的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。
将一组数字第一个放入结尾,第二个数字输出,直到所有数字输出,即输入:6 3 1 7 5 8 9 2 4 ,输出为:
4 2 9 8 5 7 1 3 6.
代码如下: