C++的棧


棧,是一種存儲受限的線性數據結構,在存儲和訪問數據的時候只能訪問棧的一端。棧類似於一摞盤子,只能拿去最上面的盤子,也只能把盤子放到最上面。由於這種特點,棧是一種后進先出(Last in / First out, LIFO)的數據結構。

棧的主要操作有以下幾種:

  • push
    向棧頂插入元素(摞上去一個盤子)
  • top
    獲取棧頂元素的值(看看最上面那個盤子上面寫了什么東西)
  • pop
    取出棧頂元素(拿走最上面的盤子)
  • isEmpty
    判斷棧是否為空(這里有沒有盤子)
  • clear
    清空棧(把盤子都拿走)

鏈接:https://zhuanlan.zhihu.com/p/23041083


 

使用標准庫的棧和隊列時,先包含相關的頭文件

#include<stack>

#include<queue>

定義棧如下:

stack<int> s;

定義隊列如下:

queue<int> q;

s.empty() 如果棧為空返回true,否則返回false
s.size() 返回棧中元素的個數
s.pop() 刪除棧頂元素
s.top() 返回棧頂的元素
s.push() 在棧頂壓入新元素

 


q.empty() 如果隊列為空返回true,否則返回false
q.size() 返回隊列中元素的個數
q.pop() 刪除隊列首元素
q.front() 返回隊首元素的值
q.push() 在隊尾壓入新元素
q.back() 返回隊列尾元素的值

c++stack(堆棧)
它是一個容器的改編,它實現了一個先進后出的數據結構(FILO)

使用該容器時需要包含#include<stack>頭文件;

定義stack對象的示例代碼如下:

stack<int>s1;

stack<string>s2;

stack的基本操作有:

1.入棧:如s.push(x);

2.出棧:如 s.pop().注意:出棧操作只是刪除棧頂的元素,並不返回該元素。

3.訪問棧頂:如s.top();

4.判斷棧空:如s.empty().當棧空時返回true。

5.訪問棧中的元素個數,如s.size();

一個例子:

#include<iostream>  
#include<stack>  
using namespace std;
int main(void)
{
    stack<double>s;//定義一個棧  
    for (int i = 0; i<10; i++)
        s.push(i);
    while (!s.empty())
    {
        printf("%lf\n", s.top());
        s.pop();
    }
    cout << "棧內的元素的個數為:" << s.size() << endl;
    system("pause");
    return 0;
}

 

 


原文:https://blog.csdn.net/tham_/article/details/44733101

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM