C语言-stack的应用

发布于 / 数据结构与算法 / 0 条评论

0x00、stack简介

    stack,即"栈",是一个"先进后出"的容器。

    可以理解:栈是一个箱子,数据就是物品。以此放入编号为1,2,3,4的物品,拿出的时候顺序只能是4,3,2,1,所以称之为"先进后出"。放张图可能更好理解些:

    C++标准模板库提供了stack的头文件,使用起来也十分方便:

0x01、使用之前

    要使用stack,应先添加对应的头文件:stack

#include <stack>

    接着定义命名空间

using namespace std;

    可以这样定义stack:

stack<ElementType> st;


0x02、操作

    将元素压入栈,可以使用push函数:

st.push(VARIABLE);

    stack是一个后进先出的数据结构,所以只能通过top()函数访问栈顶元素(元素仍然保留在堆栈内),使用pop()函数弹出栈顶元素(元素将从堆栈中删除),称之为"弹栈"

ElementType VariableName = st.top();
st.pop();

    可以使用empty()函数检查栈是否空(返回True或False),可以使用size()函数获取堆栈元素个数。

bool isempty = st.empty();
int sum = st.size();

0x03、举例

#include <iostream>
#include <stack>
using namespace std;

int main(){
  stack<int> st;
  for(int i = 0; i < 5; i ++)
    st.push(i);
  while(!st.empty()){
    cout << "栈顶元素:" << st.top();
    cout << "  栈剩余元素个数:" << st.size() << endl;
    st.pop();
  }
  return 0;
}

程序输出:

转载原创文章请注明,转载自: 斐斐のBlog » C语言-stack的应用
目前还没有评论,快来抢沙发吧~