21xrx.com
2025-03-28 02:13:09 Friday
文章检索 我的文章 写文章
C++栈代码实例
2023-07-03 10:47:15 深夜i     10     0
C++ stack 代码 实例 数据结构

C++栈是程序设计中常用的数据结构之一,它采用“后进先出”的方式管理数据,可以用来解决很多计算问题。下面是一段C++栈代码实例,可以帮助初学者更好地理解栈的实现。

代码实例:

#include <iostream>
using namespace std;
const int MAX_SIZE = 100// 声明栈的最大容量
class Stack {
private:
  int data[MAX_SIZE]; // 栈的数据存储区
  int top; // 栈顶指针,指向栈顶元素的下一个位置
public:
  Stack() top = 0;  // 构造函数,初始化栈顶指针
  bool isEmpty() return top == 0;  // 判断栈是否为空
  bool isFull() return top == MAX_SIZE;  // 判断栈是否已满
  void push(int value); // 入栈操作
  void pop(); // 出栈操作
  int getTop(); // 取出栈顶元素
};
void Stack::push(int value) {
  if (isFull())
    cout << "Stack Overflow" << endl;
    return;
  
  data[top++] = value;
}
void Stack::pop() {
  if (isEmpty())
    cout << "Stack Underflow" << endl;
    return;
  
  top--;
}
int Stack::getTop() {
  if (isEmpty())
    cout << "Stack is Empty" << endl;
    return -1;
  
  return data[top - 1];
}
int main() {
  Stack s;
  s.push(3);
  s.push(5);
  s.push(7);
  cout << s.getTop() << endl; // 输出7
  s.pop();
  cout << s.getTop() << endl; // 输出5
  s.pop();
  cout << s.getTop() << endl; // 输出3
  s.pop();
  cout << s.getTop() << endl; // 输出“Stack is Empty”
  return 0;
}

上述代码实现了一个简单的栈数据结构,其中包含了常用的入栈、出栈、获取栈顶元素等操作。通过这个例子,我们可以很好地理解栈的实现方式和基本操作。

在代码中,使用了data数组来存储栈的数据,用top指针表示栈顶指针,指向栈顶元素的下一个位置。在入栈操作时,先判断栈是否已满,如果已满则返回“Stack Overflow”,否则将要入栈的元素放入data数组中,然后栈顶指针加1。在出栈操作时,先判断栈是否为空,如果为空则返回“Stack Underflow”,否则栈顶指针减1。在获取栈顶元素时,先判断栈是否为空,如果为空则返回“Stack is Empty”,否则返回data[top-1]。

最后,在main函数中,我们创建了一个Stack对象s,并对其进行了入栈、出栈和获取栈顶元素等操作。可以看到,栈的特点是后进先出,因此每次出栈操作都会弹出最后入栈的元素。

总的来说,了解栈的实现和基本操作非常重要,它是程序设计中必不可少的数据结构之一。通过上述的代码实例,可以帮助初学者更好地理解和掌握栈的使用,同时也可以为以后的程序设计打下坚实的基础。

  
  

评论区

请求出错了