21xrx.com
2024-11-22 02:47:42 Friday
登录
文章检索 我的文章 写文章
C++栈代码实例
2023-07-03 10:47:15 深夜i     --     --
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,并对其进行了入栈、出栈和获取栈顶元素等操作。可以看到,栈的特点是后进先出,因此每次出栈操作都会弹出最后入栈的元素。

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

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复