day3_C++

day3_C++

  • 思维导图
  • 用C++的类完成数据结构 栈的相关操作
  • 用C++的类完成数据结构 循环队列的相关操作

思维导图

用C++的类完成数据结构 栈的相关操作

stack.h

#ifndef STACK_H
#define STACK_H

#include 
#include 

using namespace std;


typedef int datatype;

#define MAX 5

class Stack
{
public:
    /*构造函数*/
    Stack();
    /*拷贝构造函数*/
    Stack(const Stack& others);
    /*析构函数*/
    ~Stack();

    /*判满 true 满 */
    bool is_full();
    /*判满 true 空*/
    bool is_empty();
    /*入栈*/
    void in_stack(datatype e);
    /*出栈*/
    datatype out_stack();
    /*清空栈*/
    void clear_stack();
    /*求栈顶元素*/
    datatype get_stackTop_E();
    /*求栈的大小*/
    void get_stackSize();


private:
    int top;
    datatype *data;
};

#endif // STACK_H

stack.cpp

#include "stack.h"

Stack::Stack():data(new int[MAX]),top(-1)
{
    memset(this->data,0,MAX);
    //在堆区申请max个int大小的空间
    cout<<"栈容器初始化成功"<data[i] = others.data[i];
    }
    cout<<"拷贝完成"<top ==MAX-1)
        return true;
    else
        return false;
}

bool Stack::is_empty()
{
    if(this->top == -1)
        return true;
    else
        return false;
}


void Stack::in_stack(datatype e)
{
    if(this->is_full()==false){
        this->top++;
        this->data[this->top] = e;
        cout<<"入栈成功"<is_empty()==false){
        datatype temp = this->data[this->top];
        this->top--;
        return temp;
    }else{
         cout<<"出栈失败,栈空"<is_empty()==false){
        this->top=-1;
        cout<<"清空成功"<is_empty()==true)
         return NULL;
     return this->data[this->top];
}

void Stack::get_stackSize(){
    cout<<"栈中有元素 "<top+1<<"个"<

用C++的类完成数据结构 循环队列的相关操作

queue.h

#ifndef QUEUE_H
#define QUEUE_H
#include 
#include 

using namespace std;

typedef int datatype;
#define MAX 5

class Queue
{

public:
    /*构造函数*/
    Queue();
    /*拷贝构造函数*/
    Queue(const Queue& others);
    /*析构函数*/
    ~Queue();

    /*判满 true 满 */
    bool is_full();
    /*判满 true 空*/
    bool is_empty();
    /*入队*/
    void in_queue(datatype e);
    /*出队*/
    datatype out_queue();
    /*清空队*/
    void clear_queue();
    /*求队的大小*/
    void get_queueSize();


private:
    datatype *data;
    int font;
    int tail;
};

#endif // QUEUE_H

queue.cpp

#include "queue.h"

Queue::Queue():data(new int [MAX]),tail(0),font(0)
{
    memset(this->data,0,MAX);
    cout<<"循环队列初始化成功"<font;
    int t = this->tail;
    while ((f+MAX)%MAX==t) {
        this->data[f] = others.data[f];
        f++;
    }
    cout<<"拷贝完成"<tail+1)%MAX == this->font){
        return true;
    }
    return false;
}

bool Queue::is_empty()
{
    if(this->font == this->tail){
        return true;
    }
    return false;
}

Queue::~Queue()
{
    //释放堆区数据
    delete []data;
    cout<<"析构完成"<is_full() == true){
        cout<<"队列满了"<data[this->tail] = e;
    this->tail =  (this->tail+1)%MAX;
    cout<<"入队成功"<is_empty() == true){
        cout<<"队列空,无元素"<data[this->font];
    this->font = (this->font+1)%MAX;
    return temp;
}


void Queue::clear_queue()
{
    if(this->is_empty() == true){
        cout<<"队列空,无元素"<font = 0;
    this->tail = 0;
}

void Queue::get_queueSize()
{
    cout<<"队列的大小是:" <<(this->tail-this->font+MAX)%MAX<

你可能感兴趣的:(作业,c++,开发语言)