第三讲栈和队列XU.pptVIP

  • 2
  • 0
  • 约9.59千字
  • 约 45页
  • 2017-05-19 发布于四川
  • 举报
第三讲栈和队列XU

第3讲 栈和队列 主要内容 栈的定义及ADT、存储表示及算法 栈的应用示例(表达式求值、回溯算法的栈应用) 递归算法的使用技巧 队列的定义及ADT、存储表示及算法 队列的应用示例 栈和队列 从数据结构的角度看 栈和队列也是线性表 但其操作是线性表操作的子集 栈只能从一端操作,后进先出(LIFO) 队列一端只能进,另一端只能出(FIFO) 从数据类型的角度看 是与线性表不同的两类重要抽象数据类型 栈( stack )定义 限定只能在表的一端进行插入和删除的特殊的线性表 设栈s=(a1,a2,. . . ,ai,. . . ,an), 其中a1是栈底元素, an是栈顶元素。 后进先出原则 LIFO ( last in first out ) 栈顶(top):允许插入和删除的一端; 栈底(base):不允许插入和删除的一端。 注意top指向的位置。 可以指向栈顶元素 可以指向当前栈顶元素上相邻的空位 (更常用) 栈的ADT ADT见P45 注意几个基本操作 设置空栈 插入新的栈顶元素(入栈操作,push) 删除栈顶元素(出栈操作,pop) 读取栈顶元素 依据其存储结构分为 顺序栈 栈采用顺序存取结构,称为顺序栈。 链栈 栈采用链表存取结构,称为链栈。 如何实现顺序栈? 整个线性表 每个元素 链栈 采用链式存储结构 约定插入、删除等操作只能在表头进行 可以不必像单链表

文档评论(0)

1亿VIP精品文档

相关文档