第三章 栈和队列 栈和队列是在程序设计中被广泛使用的两种线性数据结构,它们的特点在于基本操作的特殊性,栈必须按后进先出的规则进行操作,而队列必须按先进先出的规则进行操作。和线性表相比,它们的插入和删除操作受更多的约束和限定,故又称为限定性的线性表结构。可将线性表和栈及队列的插入和删除操作对比如下: 一、什么是栈 栈:限定仅在一端进行插入或删除操作的线性表 二、栈的特点 根据栈的定义可知,最先放入栈中元素在栈底,最后放入的元素在栈顶,而删除元素刚好相反,最后放入的元素最先删除,最先放入的元素最后删除。 称往栈顶插入元素的操作为“入栈” 称删除栈顶元素的操作为“出栈”。 例2:一个栈的输入序列是12345,若在入栈的过程中允许出栈,则栈的输出序列43512可能实现吗?12345的输出呢? 43512不可能实现,主要是其中的12顺序不能实现 StackEmpty (S) //操作结果:若栈S为空栈,则返回TRUE,否则FALSE。 StackLength (S) //操作结果:返回S的元素个数,即栈的长度。 GetTop (S, e) //操作结果:用e返回S的栈顶元素。 Push (S, e) //操作结果:插入元素e为新的栈顶元素。 Pop (S, e) //操作结果:删除S的栈顶元素,并用e返回其值。 }
原创力文档

文档评论(0)