1. 主页
  2. 文档
  3. Level4题解(1-10)
  4. 第1课 栈
  5. stack

stack

stack堆栈是一个先进后出线性表,插入元素只能在表的一段进行。插入元素的一端称为栈顶,另一端称为栈底。插入元素叫入栈,删除元素叫出栈。

stack的头文件是<stack>

1.栈的常用方法

stack<Element> s; //定义栈
s.pop();           //出栈   
s.push();          //入栈 
s.top();           //返回栈顶元素
s.size();          //返回栈中元素个数
s.empty();	   //检查栈是否为空,如果为空返回true,否则返回false

2.应用举例

#include<bits/stdc++.h>  
using namespace std;   
struct node{  
    int x,y;  
};  
int main()    
{  
    stack<node> s;       //定义一个存储node类型元素的栈   
    node A;  
    for(int i = 0; i < 10; i++)  
    {  
        A.x = i;A.y = i;  
        s.push(A);       //入栈  
    }  
    printf("栈顶元素为:%d %d\n",(s.top()).x,(s.top()).y);  
    printf("栈中元素个数为:%d\n",s.size());  
    printf("栈中元素依次为:\n");         //从栈顶到栈底   
    while(!s.empty())                    //依次输出栈中元素并清空栈   
    {  
        printf("%d %d\n",(s.top()).x,(s.top()).y);  
        s.pop();  
    }   
    if(s.empty()) printf("栈为空!");  
    return 0;  
} 

3.栈的清空和判空

要注意栈没有clera()函数,只能通过循环出栈清空。