栈和队列

Posted #忘乎所以#

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了栈和队列相关的知识,希望对你有一定的参考价值。

1.首先看一下原c++栈的方法的基本用法: 

    1. push(): 向栈内压入一个成员;
    2. pop(): 从栈顶弹出一个成员;
    3. empty(): 如果栈为空返回true,否则返回false;
    4. top(): 返回栈顶,但不删除成员;
    5. size(): 返回栈内元素的大小;

  

 

 1 #include<iostream>
 2 #include<stack>
 3 using namespace std;
 4 
 5 int main()
 6 {
 7     stack <int>stk;
 8     //入栈
 9     for(int i=0;i<50;i++){
10         stk.push(i);
11     }
12     cout<<"栈的大小:"<<stk.size()<<endl;
13     while(!stk.empty())
14     {
15         cout<<stk.top()<<endl;
16         stk.pop();
17     }
18     cout<<"栈的大小:"<<stk.size()<<endl;
19     return 0;
20 }

 

 

 

 

2、队列(queue)说明及举例:

使用队列,要先包含头文件 : #include<queue>

定义队列,以如下形式实现: queue<Type> q; 其中Type为数据类型(如 int,float,char等)。

队列的主要操作:

  1. q.push(item)           //将item压入队列尾部  
  2. q.pop()                //删除队首元素,但不返回  
  3. q.front()              //返回队首元素,但不删除  
  4. q.back()               //返回队尾元素,但不删除  
  5. q.size()               //返回队列中元素的个数  
  6. q.empty()              //检查队列是否为空,如果为空返回true,否则返回false  
 1 #include<iostream>  
 2 #include<stack>  
 3 #include<queue>  
 4 using namespace std;  
 5   
 6 void main()  
 7 {  
 8     queue<int> q;  
 9     int num;  
10   
11     cout<<"------Test for Queue-------"<<endl;  
12     cout<<"Input number:"<<endl;  
13     while(cin>>num)  
14     {  
15         q.push(num);  //入队
16     }  
17     cout<<"Now the Queue has "<<q.size()<<" numbers."<<endl;  //返回队列的大小
18     cout<<"The first is "<<q.front()<<endl;  //返回队列的最前面的元素
19     cout<<"The last is "<<q.back()<<endl;  //返回队列最后面的元素
20     cout<<"All numbers:"<<endl;  
21     while(!q.empty())  //判断队列是否为空
22     {  
23         cout<<q.front()<<" ";  
24         q.pop();  
25     }  
26     cout<<"Now the Queue has "<<q.size()<<" numbers."<<endl;  
27     system("Pause");  
28   
29   
30 }  

 

以上是关于栈和队列的主要内容,如果未能解决你的问题,请参考以下文章

栈和队列基本操作

栈和队列

博客作业03--栈和队列

博客作业03--栈和队列

栈和队列知识点总结

栈和队列的面试题Java实现