21xrx.com
2024-11-22 02:53:50 Friday
登录
文章检索 我的文章 写文章
C++实现顺序栈的基本操作代码
2023-07-13 19:11:03 深夜i     --     --
C++ 顺序栈 基本操作 代码

C++是一种面向对象的高级编程语言,它具有许多强大的数据结构和算法功能。其中之一就是顺序栈,它是一种线性结构,在编程中被广泛应用。在本文中,我们将讨论如何使用C++实现顺序栈的基本操作,以及如何实现它的代码。

顺序栈是一种先进后出(Last In First Out,LIFO)的数据结构,我们可以使用数组和指针来实现它。它包括以下基本操作:

1. 创建一个空的顺序栈

2. 入栈(Push):将元素添加到栈的顶部

3. 出栈(Pop):将栈顶元素删除并返回该元素

4. 获取栈顶元素(Top):获取栈顶元素,但不删除它

5. 判断栈是否为空

6. 获取栈的大小

下面的代码演示了如何基于数组和指针实现上述几个基本操作:


#include <iostream>

#define MAX_SIZE 10

using namespace std;

class Stack{

 int* arr;

 int top;

 int size;

 public:

  Stack(int size){

   arr = new int[size];

   this->size = size;

   top = -1;

  }

  void push(int x){

   if(top == size -1)

    cout<< "Overflow Error: Stack is full!"<<endl;

    return;

   

   arr[++top] = x;

   cout<< x<<" is added to the stack."<<endl;

  }

  int pop(){

   if(top == -1)

    cout<< "Underflow Error: Stack is empty!"<<endl;

    return -1;

   

   int x = arr[top--];

   cout<< x<<" is popped from the stack."<<endl;

   return x;

  }

  int peek(){

   if(top == -1)

    cout<< "Stack is empty!"<<endl;

    return -1;

   

   return arr[top];

  }

  bool isEmpty(){

   return (top == -1);

  }

  int Size(){

   return top + 1;

  }

};

int main(){

 Stack S(MAX_SIZE);

 S.push(1);

 S.push(2);

 S.push(3);

 S.push(4);

 S.push(5);

 S.pop();

 S.pop();

 cout<< "The top element of the stack is: "<< S.peek()<< endl;

 cout<< "The stack is empty: "<< S.isEmpty()<< endl;

 cout<< "The size of the stack is: "<< S.Size()<< endl;

 return 0;

}

上述代码使用类的概念定义了一个顺序栈,该栈使用指针动态地分配数组的大小,并提供了实现上述基本操作的函数。我们在main函数中演示了如何使用这些函数。

通过上述代码,我们可以了解如何使用C++实现顺序栈的基本操作,这些操作包括入栈、出栈、获取栈顶元素、判断栈是否为空以及获取栈的大小。这些操作对于编写许多计算机科学问题的解决方案非常有用,因此熟练掌握这些操作代码非常重要。

  
  

评论区

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