Ⅱ. 栈和队列

2018-06-06  本文已影响0人  執著我們的執著

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



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

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

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


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

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

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

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

栈的应用与递归
下面利用栈来实现的例题是笔试面试经常遇到的题型,务必理解掌握!
1.数制转换
2.用栈来实现括号匹配算法(Brackets_match())
3.表达式求值
4. 汉诺塔问题(递归和非递归实现)
5. 迷宫问题
6. 皇后问题
7. 马踏棋盘问题
8. 背包问题


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

队列的基本功能实现

队列的应用
   排队与排队机的模拟

【代码后补】

上一篇 下一篇

猜你喜欢

热点阅读