信息学奥赛数据结构教程PASCAL版.docxVIP

  • 2
  • 0
  • 约1.08万字
  • 约 11页
  • 2023-03-08 发布于上海
  • 举报
信息学奥赛数据结构教程 PASCAL 版第二课 堆栈和队列 一、堆栈 概述 栈(stack)是一种特殊的线性表。作为一个简单的例子,可以把食堂里冼净的一摞碗看作一个栈。在通常情况下,最先冼净的碗总是放在最底下,后冼净的碗总是摞在最顶上。而在使用时,却是从顶上拿取, 也就是说,后冼的先取用,后摞上的先取用。好果我们把冼净的碗“摞上”称为进栈,把“取用碗”称为出栈, 那么,上例的特点是:后进栈的先出栈。然而,摞起来的碗实际上是一个表,只不过“进栈”和“出栈”,或 者说,元素的插入和删除是在表的一端进行而已。 一般而言,栈是一个线性表,其所有的插入和删除均是限定在表的一端进行,允许插入和删除的一端称栈顶(Top),不允许插入和删除的一端称栈底(Bottom)。若给定一个栈 S=(a1, a2,a3,…,an),则称a1 为栈底元素,an 为栈顶元素,元素ai 位于元素 ai-1 之上。栈中元素按a1, a2,a3,…,an 的次序进栈, 如果从这个栈中取出所有的元素,则出栈次序为 an, an-1,…,a1 。也就是说,栈中元素的进出是按后进先出的原则进行,这是栈结构的重要特征。因此栈又称为后进先出(LIFO—Last In First Out)表。我们常用一个图来形象地表示栈,其形式如下图: 通常,对栈进行的运算主要有以下几种: 往栈顶加入一个新元素,称进栈; 删除栈顶元素,称退栈

文档评论(0)

1亿VIP精品文档

相关文档