21xrx.com
2024-12-22 22:16:30 Sunday
登录
文章检索 我的文章 写文章
C++类实现栈的Push和Pop函数
2023-07-05 01:03:31 深夜i     --     --
C++ Push函数 Pop函数

C++是一种强大而受欢迎的编程语言,许多程序员喜欢使用C++来开发应用程序。在C++中,栈是一种重要的数据结构,常用于实现各种算法和程序。栈具有“后进先出”的特点,适合于一些需要快速读写栈顶元素的场合。如果要在C++中实现栈,就需要定义一个称为“类”的数据类型,该类型包含栈的各种属性和方法。

在C++中,类是一种将数据和相应函数封装在一起的数据结构。类中的数据成员和函数成员都可以分为“公有”和“私有”两种。公有成员可以被类外部的程序访问和操作,而私有成员只能被类内部的函数操作。这样可以保证数据的安全性和可控性。

下面是一个C++类实现栈的Push和Pop函数的示例代码:


#include<iostream>

using namespace std;

#define MAXSIZE 100//定义栈的最大大小

class Stack{

public:

  Stack();//构造函数

  bool isEmpty();//判断栈是否为空

  bool isFull();//判断栈是否已满

  void push(int val);//压栈

  int pop();//出栈

private:

  int top;//栈顶指针

  int data[MAXSIZE];//栈的数据区

};

Stack::Stack()//类的构造函数

  top = -1;//栈为空

bool Stack::isEmpty(){//判断栈是否为空

  if(top == -1)

    return true;

  

  else

    return false;

  

}

bool Stack::isFull(){//判断栈是否已满

  if(top == MAXSIZE-1)

    return true;

  

  else

    return false;

  

}

void Stack::push(int val){//压栈

  if(isFull())

    cout<<"Stack Overflow!"<<endl;//栈已满

  

  else{

    top++;//栈顶指针加1

    data[top] = val;//将数据放入栈顶

  }

  return;

}

int Stack::pop(){//出栈

  if(isEmpty())

    cout<<"Stack Underflow!"<<endl;//栈为空

    return -1;

  

  else{

    int val = data[top];//取出栈顶元素

    top--;//栈顶指针减1

    return val;

  }

}

int main(){

  Stack s;//创建一个栈对象

  s.push(1);//压入数字1

  s.push(2);//压入数字2

  s.push(3);//压入数字3

  cout<<s.pop()<<endl;//将3弹出

  cout<<s.pop()<<endl;//将2弹出

  cout<<s.pop()<<endl;//将1弹出

  cout<<s.pop()<<endl;//再次弹出将会提示栈已为空

  return 0;

}

在上面的例子中,我们创建了一个Stack类,它包含栈的各种属性和方法,例如:栈顶指针、数据区、构造函数、压栈函数、出栈函数等。我们使用了构造函数来初始化栈、使用isEmpty()和isFull()函数来判断栈是否为空或已满,使用push()函数将元素压入栈中、使用pop()函数将元素从栈中弹出。

使用C++类实现栈的Push和Pop函数可以让我们更加方便地操作栈,增加程序的可读性和可维护性,是C++编程的重要技能之一。

  
  

评论区

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