c++ stl库--stack堆栈

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

头文件是<stack>

1.定义栈

stack <Element> s; 

2.出栈和入栈

s.pop();//出栈   
s.push();//入栈   

3.取栈顶元素

s.top(); //返回栈顶元素  

4.栈中元素数量

s.size();//返回栈中元素个数   
#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;  
}  

5.栈的清空和判空

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

s.empty();//判断栈是否为空,为空返回true,不为空返回false   
//栈的清空   
while(!s.empty())// 栈不为空   
{  
    s.pop();//出栈   
}   

猜你喜欢

转载自blog.csdn.net/sugarbliss/article/details/80964761