C++ day3

https://note.youdao.com/s/VC4lNwOlicon-default.png?t=N7T8https://note.youdao.com/s/VC4lNwOl

1>

自行封装一个栈的类,包含私有成员属性:栈的数组、记录栈顶的变量

成员函数完成:构造函数、析构函数、拷贝构造函数、入栈、出栈、清空栈、判空、判满、获取栈顶元素、求栈的大小

2> 自行封装一个循环顺序队列的类,包含私有成员属性:存放队列的数组、队头位置、队尾位置

成员函数完成:构造函数、析构函数、拷贝构造函数、入队、出队、清空队列、判空、判满、求队列大小

循环队列:

#include 

using namespace std;

class My_Queue{
private:
    int *m_queue;
    int front;
    int tail;
    int length;
public:
    //构造函数
    My_Queue(int len);
    //构造拷贝函数
    My_Queue(const My_Queue& obj);
    //析构函数
    ~My_Queue();
    //队列长度
    int len();
    //入队
    bool push(int val);
    //出队
    bool pop();
    //判空
    bool empty();
    //判满
    bool full();
    //遍历
    bool show();

};

//有参构造
My_Queue::My_Queue(int len):m_queue(nullptr),front(0),tail(0),length(0){

    m_queue = new int[len+1];

    for(int i=0;i

 C++ day3_第1张图片

栈:

#include 

using namespace std;
#define N 128

class my_stack{
private:
    int data[N];
    int top=-1;
public:
    //构造函数
    //my_stack();

    //判空
    bool empty();

    //判满
    bool full();

    //入栈
    void push(const  int val);

    //出栈
    void pop();

    //求栈大小
    int size();

    //获取栈顶元素
    int my_top();

    //销毁栈
    bool clear();

    //遍历
    bool show();

    //析构
    //~my_stack();
};


//判空
bool my_stack::empty(){

    return top == -1?1:0;

}



//判满
bool my_stack::full(){

    return top == N?1:0;
}


//入栈
void my_stack::push(const int val){

    if(full()){return;}
    top++;
    data[top] = val;
}


//出栈
void my_stack::pop(){
    if(empty()){
        cout<<"栈空";
    }
    top--;
    cout<<"出栈成功!"<C++ day3_第2张图片

你可能感兴趣的:(c++)