这篇文章浅显的介绍了在数据结构中如何定义栈和队列的抽象数据类型(Abstract Data Type),以及基于这种抽象数据类型的一些操作:入栈,出栈,取栈顶元素,入队,出队,取队首元素和队尾元素等。一、引言栈和队列是计算机科学领域中经常使用的两个概念,从操作系统的事务管理机制到一个小的递归程序,都离不开这两个概念。栈因为它的后进先出(LIFO)而给人们留下了深刻的认识。假如你把一连串的数据插入到栈之中,然后再把他们取出,那么你会得到一个和你输入相反的结果。比如输入的数据是{20, 15,10, 5},那么你从栈中取得的数据将是{5, 10, 15, 20}。队列却有着和上面描述截然相反的特征。当你向队列中输入{20, 15, 10, 5}时,你得到的结果依然是{20, 15, 10, 5}。这就是队列先进先出(FIFO)的特点。下图形象的描述了栈和队列的这些特点:二、栈和队列的抽象数据类型栈和队列特殊,然而它们依旧是表(Lists)的两种分支,我们依然可以用定义表的方法来定义栈和队列。下面是采用链式存储结构定义的栈和队列:typedefstructSNode// 栈的节点结构{chardata;structSNode*next;}SNode,*LinkStack;typedefstruct// 栈的表头结构{intcount;structSNode*top;}Stack;type
...
继续阅读
(5)