C++:stack与queue的使用
stack与queue的使用
- 一.stack与queuej基础
- 1.stack
- 1.1基本认识
- 1.2示例代码
- 代码功能解析
- 2.queue
- 2.1基础知识
- 操作说明
- 2.2示例代码
- 代码分析
一.stack与queuej基础
1.stack
1.1基本认识
以上图片展示了栈(stack)这种数据结构的基本操作示意。栈是一种遵循后进先出(LIFO,Last In First Out)原则的线性数据结构。
push()
:这是栈的入栈操作,用于将元素添加到栈顶。pop()
:这是栈的出栈操作,用于移除栈顶元素。top
:表示栈顶位置,栈顶是栈中最后一个被添加的元素所在的位置。
栈广泛应用于各种场景,例如函数调用时的栈帧管理、表达式求值、括号匹配等问题的解决。
1.2示例代码
#include<iostream>
#include<stack>
#include<queue>
using namespace std;void test01()
{stack<int> st;st.push(1);st.push(2);st.push(3);st.push(4);st.push(5);cout << st.size() << endl;while (!st.empty()){cout << st.top() << " ";st.pop();}
}int main() {test01();return 0;
}
代码功能解析
test01
函数:- 首先定义了一个整型栈
stack<int> st;
。 - 然后依次将
1
、2
、3
、4
、5
这几个整数压入栈中。 - 使用
cout << st.size() << endl;
输出栈的大小,此时栈中有5
个元素,所以会输出5
。 - 接着使用
while
循环,只要栈不为空(!st.empty()
),就输出栈顶元素(st.top()
)并弹出栈顶元素(st.pop()
)。按照栈后进先出的原则,输出顺序会是5 4 3 2 1
。
- 首先定义了一个整型栈
main
函数:在main
函数中调用了test01
函数来执行上述操作。
2.queue
2.1基础知识
操作说明
- 入队(enqueue):元素从队尾加入,新元素排末尾,后续入队元素添右侧 。
- 出队(dequeue):元素从队头离开,遵循先进先出(FIFO)原则,先入队的先出,出队后队头后移 。
2.2示例代码
#include<iostream>
#include<stack>
#include<queue>
using namespace std;void test02()
{queue<int> qu;qu.push(1);qu.push(2);qu.push(3);qu.push(4);qu.push(5);cout << qu.size() << endl;while (!qu.empty()){cout << qu.front() << " ";qu.pop();}
}int main() {test02();return 0;
}
代码分析
test02
函数:- 首先定义了一个整型队列
queue<int> qu;
。 - 然后依次将
1
、2
、3
、4
、5
这几个整数压入队列中。 - 使用
cout << qu.size() << endl;
输出队列的大小,此时队列中有 `` 个元素,所以会输出5
。 - 接着使用
while
循环,只要队列不为空(!qu.empty()
),就输出队列的队头元素(qu.front()
)并弹出队头元素(qu.pop()
)。按照队列先进先出的原则,输出顺序会是1 2 3 4 5
。
- 首先定义了一个整型队列
main
函数:在main
函数中调用了test02
函数来执行上述操作。