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

 

posted on 2019-01-15 21:16  一杯明月  阅读(8331)  评论(0编辑  收藏  举报