C++数组实现栈与队列操作详解

需积分: 0 3 下载量 150 浏览量 更新于2024-07-01 收藏 17.37MB PDF 举报
本资源是一份C++编程训练营中的代码片段,涉及两个数据结构实现:栈(Stack)和队列(Queue)。首先,我们来看第一个文件`stack.cpp`: 标题:"训练营OJ完整版1" 描述:"这是关于C++实现一个基于数组的栈(Stack)的代码,包含push、pop和query操作。" **知识点:** 1. **栈(Stack)**: - `#include <bits/stdc++.h>`:导入C++的标准库,提供常用算法和数据类型。 - `using namespace std;`:引入标准命名空间,方便使用std库中的函数和对象。 - 定义常量`N=100005`,表示数组大小。 - `string Stack[N];`:定义一个大小为N的动态字符串数组,用于存储栈元素。 - `push(string name)`:函数接收一个字符串参数,将其压入栈顶。 - `string pop()`:执行出栈操作,返回并移除栈顶元素。 - `string query(int pos)`:根据给定索引查询栈内元素,但这里需要注意,栈的索引是从1开始的,与数组下标对应。 在`main()`函数中,通过输入操作码(1表示压栈,2表示弹栈,3表示查询)来调用这些操作。 第二个文件`queue.cpp`: 标题:"训练营OJ完整版2" 描述:"这是一个C++实现的基于数组的队列(Queue),同样包含enqueue、dequeue和query操作。" **知识点:** - `#include <bits/stdc++.h>`, `using namespace std;` 和常量定义与`stack.cpp`相同。 - `int n, op, header = 1, tailer = 1;`:声明队列的长度、操作变量以及头指针和尾指针。 - `string Queue[N];`:定义队列数组。 - `enqueue(string name)`:将字符串加入队列尾部。 - `string dequeue()`:执行出队操作,返回并移除队列头部元素。 - `string query(int pos)`:查询队列中指定位置的元素,这里的索引是从1开始的,与队列头指针关联。 在`main()`函数中,用户输入操作码来控制队列的操作。 总结:这两个文件展示了如何使用C++编程实现基本的数据结构栈和队列,涉及到数组作为底层存储,以及常见的操作如入栈、出栈、入队、出队和查询。这对于理解和实践基础数据结构理论,以及在实际编程中高效地处理问题非常有帮助。通过练习这样的代码,可以提升对C++编程的理解,并熟练运用这些数据结构。