zoukankan      html  css  js  c++  java
  • 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
    ", s.top());
            s.pop();
        }
        cout << "栈内的元素的个数为:" << s.size() << endl;
        system("pause");
        return 0;
    }


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

  • 相关阅读:
    构造方法
    不死神兔
    类与对象
    成员变量和局部变量的区别
    this关键字的理解
    private关键字理解
    如何设置客户端证书
    有关中文的正则表达式
    Web和证书服务:建立电子商务外部网
    认证服务Web 网页循序渐进指南
  • 原文地址:https://www.cnblogs.com/yibeimingyue/p/10274329.html
Copyright © 2011-2022 走看看