美文网首页
Ⅱ. 栈和队列

Ⅱ. 栈和队列

作者: 執著我們的執著 | 来源:发表于2018-06-06 01:07 被阅读0次

栈和队列都是线性结构,可以用线性表在某种条件下来完成栈和队列的操作



1. 栈 : 先进后出的线性表

应用 : 常见的如许多软件都有"撤销(Undo)"和"恢复(Redo)"功能就是用栈来实现的
虽然STL中封装好的栈和队列,但是自己手写实现栈和队列的基本功能,能更好的理解。

栈的基本功能 (包括但不限于)

  • 初始化(空栈)
  • 若为空栈,返回true
  • 返回栈的元素个数
  • 若不为空,返回栈顶元素(GetTop)
  • 压栈(push)
  • 出栈(pop)
  • 从栈底遍历栈

栈的基本功能实现
  1. 顺序存储结构的栈

    • 数组实现
  2. 链式存储结构的栈

    • 双向循环链表来实现链式栈

[补充] 一个常见的结论 :卡特兰数(Catalan) n个不同元素出栈,出栈序列的个数为

栈的应用与递归
下面利用栈来实现的例题是笔试面试经常遇到的题型,务必理解掌握!
1.数制转换
  • 十进制数 m 转换成 n 进制数的结果表示
2.用栈来实现括号匹配算法(Brackets_match())
  • ( { [ ] } ) 或者 非法的情况( { ] )
3.表达式求值
  • 例如: 代码实现下面表达式求值
    (0-12)*(5-3)*3+2)/(2+2)
4. 汉诺塔问题(递归和非递归实现)
  • 非常经典的问题
5. 迷宫问题
6. 皇后问题
7. 马踏棋盘问题
8. 背包问题


2. 队列 : 先进先出的线性表

队列的基本功能实现

  • 链式存储结构的队列
  • 顺序存储结构的队列
队列的应用
   排队与排队机的模拟

【代码后补】

相关文章

  • 数据结构——栈和队列

    用数组实现栈和队列 用栈实现队列 用队列实现栈 栈和队列的经典算法题最小间距栈宠物收养所 数组实现栈和队列 用数组...

  • 栈和队列

    用栈定义队列(出入栈) 用队列定义栈(数据队列和辅助队列)

  • Algorithm小白入门 -- 队列和栈

    队列和栈队列实现栈、栈实现队列单调栈单调队列运用栈去重 1. 队列实现栈、栈实现队列 队列是一种先进先出的数据结构...

  • 栈和队列

    栈和队列 本质上是稍加限制的线性表 栈和队列定义 栈顺序栈定义 链栈结点定义 队列顺序队列 链队列链队类型定义 链...

  • Python实现栈和队列以及使用list模拟栈和队列

    Python实现栈和队列 Python使用list模拟栈和队列

  • 算法-栈和队列算法总结

    栈和队列算法总结 1 模拟 1.1 使用栈实现队列 1.2 使用队列实现栈 2 栈的应用 2.1 栈操作 2.2 ...

  • 算法分析 [BFS、Greedy贪心] 2019-02-18

    队列 和 栈 232. 用栈实现队列 Implement Queue using Stacks双栈,出队列时,将i...

  • 实 验 四 栈和队列

    一、实验目的与要求:## 1、理解栈和队列抽象数据类型。 2、掌握栈和队列的存储结构和操作实现。 3、理解栈和队列...

  • 栈、队列和链表

    基本数据结构 栈和队列 栈和队列都是动态集合。栈实现的是一种后进先出策略。队列是一种先进先出策略。 栈 栈上的in...

  • 算法导论 基本数据结构

    MIT公开课没有讲到的内容,介绍几种基本数据结构- 栈和队列- 链表- 二叉树 栈和队列 栈和队列都是动态集合,元...

网友评论

      本文标题:Ⅱ. 栈和队列

      本文链接:https://www.haomeiwen.com/subject/ggrvsftx.html