C++ Stack的使用

前言:

棧(stack)是限定僅在表尾進行插入和刪除操作的線性表。 棧中允許插入和刪除的一端稱爲棧頂(top),另一端稱爲棧底(bottom)。 不含任何數據元素的棧稱爲空棧。 棧中元素的個數稱爲棧的高度或長度。將元素插入到棧中的操作稱爲入棧(或進棧)操作,元素入棧後就變成新的棧頂。 將元素從棧中刪除的操作稱爲出棧(或退棧)操作,出棧時被刪除的總是原來的棧頂元素 。

棧的基本運算主要有以下幾種:

  • 入棧 Push(x),將元素x 插入到棧頂;
  • 出棧 Pop(),刪除棧頂元素;
  • 取棧頂元素 Top(),返回棧頂元素,棧頂元素並不出棧;
  • 判棧空 Empty(),判別棧是否爲空。

創建Stack對象:

頭文件:#include

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章