C++标准库之栈(stack)和队列(queue)

scorlw 发布于

C++标准库之栈(stack)和队列(queue)

c++

在C++标准库(STL)中,实现了栈和队列,方便使用,并提供了若干方法。以下作简要介绍。

栈(stack)说明及举例:

使用栈,要先包含头文件 : #include

定义栈,以如下形式实现: stack s; 其中Type为数据类型(如 int,float,char等)。

栈的主要操作:

1
2
3
4
5
s.push(item);		//将item压入栈顶
s.pop(); //删除栈顶的元素,但不会返回
s.top(); //返回栈顶的元素,但不会删除
s.size(); //返回栈中元素的个数
s.empty(); //检查栈是否为空,如果为空返回true,否则返回false

实例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include<iostream>
#include<stack>
using namespace std;

void main()
{
stack<int> s;
int num;
cout<<"------Test for Stack-------"<<endl;
cout<<"Input number:"<<endl;

while(cin>>num)
{
s.push(num);//输入数字到栈
}
cout<<"The Stack has "<<s.size()<<" numbers.They are:"<<endl;
while(!s.empty())//当栈不为空
{
cout<<s.top()<<" ";//打印栈顶的元素
s.pop();//pop出栈顶元素
}
cout<<"\nNow the size is "<<s.size()<<endl;
system("Pause");
}

IO:

1
2
3
4
5
输入:1 2 3 4 5 6 q
输出:
The Stack has 6 numbers.They are:
6 5 4 3 2 1
Now the size is 0

队列(queue)说明及举例:

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

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

队列的主要操作:

1
2
3
4
5
6
q.push(item)           //将item压入队列尾部
q.pop() //删除队首元素,但不返回
q.front() //返回队首元素,但不删除
q.back() //返回队尾元素,但不删除
q.size() //返回队列中元素的个数
q.empty() //检查队列是否为空,如果为空返回true,否则返回false

实例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include<iostream>
#include<queue>
using namespace std;

void main()
{
queue<int> q;
int num;
cout<<"------Test for Queue-------"<<endl;
cout<<"Input number:"<<endl;
while(cin>>num)//输入数字
{
q.push(num);
}
cout<<"Now the Queue has "<<q.size()<<" numbers."<<endl;
cout<<"The first is "<<q.front()<<endl;
cout<<"The last is "<<q.back()<<endl;
cout<<"All numbers:"<<endl;
while(!q.empty())
{
cout<<q.front()<<" ";
q.pop();
}
cout<<"Now the Queue has "<<q.size()<<" numbers."<<endl;
system("Pause");
}

IO:

1
2
3
4
5
6
7
输入:1 2 3 4 5 6 7 q
输出:
Now the Queue has 7 numbers.
The first is 1
The last is 7
All numbers:
1 2 3 4 5 6 7 Now the Queue has 0 numbers.

原文地址:https://blog.csdn.net/livecoldsun/article/details/25011413