首页 > 其他 > 详细

数据结构——栈(Stacks)

时间:2014-12-27 00:14:56      阅读:300      评论:0      收藏:0      [点我收藏+]

栈遵循LIFO ( last in first out) 即后入先出原则

栈结构类似于叠盘子 后叠上去的要先拿走 才能拿到下面的盘子

因此stack是一种访问受限的线性存储结构

用单向链表的结构来存储

 

stack类

1 class stack
2 {
3     stack();
4     bool empty() const;
5     void pop();    //移除栈顶元素
6     void push()(const T&item);//增加元素至栈顶
7     int size() const;
8     T &top() const;//返回栈顶元素 
9 }

 

栈的两个常见应用:

&&Run-time Stack  运行时间栈

顺序执行活动,运行栈顶的活动,运行完毕弹出。

 

&&RPN or Postfix Notation

将中缀表达式转化为后缀表达式压入栈中,顺序弹出进行运算。

如:a*b+c  -> ab*c+

  a*(b+c)  -> abc+*

  a-(b-(c-d))  -> abcd---

压入栈中时分为 数字栈 和 符号栈

符号栈:进栈与栈顶元素比较优先级。

    同级则先弹出栈顶元素再新元素进栈,

    优先级低则先弹出栈顶元素再与新的栈顶元素比较,

    优先级高则直接入栈。

    ‘(’ 直接入栈,碰到 ‘)’ 则将直至 ‘(’ 的符号全部弹出。

举例:

技术分享

 

数据结构——栈(Stacks)

原文:http://www.cnblogs.com/verlen11/p/4187697.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!