栈与队列c++经典例题
时间: 2024-09-25 12:08:40 浏览: 52
栈(Stack)和队列(Queue)是数据结构中常见的两种线性表,它们在C++中都有对应的容器类实现。
**栈(Stack)**通常遵循“后进先出”(Last In, First Out,LIFO)原则。C++标准库中的`std::stack`就是基于这个原理,典型的应用包括函数调用堆栈、表达式求值等。例如:
```cpp
#include <iostream>
#include <stack>
int main() {
std::stack<int> s;
s.push(1); // 入栈
s.push(2);
s.push(3);
while (!s.empty()) { // 当栈非空时循环
int top = s.top(); // 取栈顶元素
std::cout << top << " ";
s.pop(); // 出栈
}
return 0;
}
```
**队列(Queue)**则遵循“先进先出”(First In, First Out,FIFO)规则。C++中的`std::queue`就是这样工作的,如打印字母表:
```cpp
#include <iostream>
#include <queue>
int main() {
std::queue<char> q;
q.push('A'); // 入队
q.push('B');
q.push('C');
while (!q.empty()) {
char front = q.front(); // 取队首元素
std::cout << front << " ";
q.pop(); // 出队
}
return 0;
}
```
阅读全文