C++ Stack的使用

前言:

栈(stack)是限定仅在表尾进行插入和删除操作的线性表。 栈中允许插入和删除的一端称为栈顶(top),另一端称为栈底(bottom)。 不含任何数据元素的栈称为空栈。 栈中元素的个数称为栈的高度或长度。将元素插入到栈中的操作称为入栈(或进栈)操作,元素入栈后就变成新的栈顶。 将元素从栈中删除的操作称为出栈(或退栈)操作,出栈时被删除的总是原来的栈顶元素 。

栈的基本运算主要有以下几种:

  • 入栈 Push(x),将元素x 插入到栈顶;
  • 出栈 Pop(),删除栈顶元素;
  • 取栈顶元素 Top(),返回栈顶元素,栈顶元素并不出栈;
  • 判栈空 Empty(),判别栈是否为空。

创建Stack对象:

头文件:#include < stack >

template <class T, class Container = deque > class stack;

std::stack<int> mystack; //创建空的栈
std::stack <int> mystack1(mystack)//拷贝构造

Stack成员函数:

size( ) :返回栈中元素个数

//size_type size()
mystack.size()

top( ) :返回栈顶的元素

//value_type &top() 返回栈顶元素的引用
mystack.pop()

pop( ) :从栈中取出并删除元素

//void pop();

while(!mystack.empty())
{
	mystack.pop(); //全部出栈
}

push(e) :向栈中添加元素e

mystack.push(10);

empty( ) :栈为空时返回true

while (!mystack.empty())
  {
     sum += mystack.top();
     mystack.pop();
  }

栈的应用:

  • 数制转换
  • 括号匹配的检验
  • 行编辑程序
  • 迷宫求解
  • 表达式求值
  • 栈与递归的实现
  • 二叉树

https://wenku.baidu.com/view/80a6b1777275a417866fb84ae45c3b3567ecddbb.html

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值