9.8号作业

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

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

#include 
using namespace std;
typedef int datatype;
class Stack
{
private:
    datatype  data[40]={0};
    datatype top=-1;
public:
    Stack ()
    {
        cout<<"这是构造函数"<
    }
    int stack_empty();
    int stack_full();
    int  stack_push(datatype e);
    int  stack_pop();
    int stack_size();
    int  stack_top();
    int stack_fullpop();
    ~Stack ()
    {
        cout<<"这是析构函数"<
    }
};
int Stack::stack_empty()
{
            if(top==-1)
            {
                cout<<"栈为空"<
            }
            return 1;
}
int Stack::stack_full()
{
    if(top==39)
    {
        cout<<"栈为满"<
    }
    return 1;
}
int Stack::stack_push(datatype e)
{
    top++;
    data[top]=e;
    cout<<"入栈成功"<
    return 1;
}
int  Stack::stack_pop()
{
    datatype e =data[top];
    top--;
    cout<
    return 1;
}
int Stack::stack_top()
{
    cout<<"栈顶元素为"<
    return 1;
}
int Stack::stack_size()
{
    return top+1;
}
int Stack::stack_fullpop()
{
    for(int i=top;i>-1;i--)
    {
        cout<
    }
    cout<<"清空栈成功"<
    return 1;
}
int main()
{
    Stack s1;
    s1.stack_push(2);
    s1.stack_push(5);
    s1.stack_push(6);
    s1.stack_push(3);
    s1.stack_pop();
    cout<<"栈的大小"<
   s1.stack_top();
   s1.stack_fullpop();
    return 0;
}

9.8号作业_第1张图片

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

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

#include 
#define MAX  40
typedef int datatype;
using namespace std;
class Queue
{
private:
    datatype data[MAX]={0};
    int front=0;
    int tail=0;
public:
    Queue()
    {
        cout<<"这里是构造函数"<
    }
 
  
    int queue_empty();     //判空
 
  
    int queue_full();          //判满
 
  
    int queue_push(datatype e);        //入队
 
  
    int queue_pop();          //出队
 
  
    int queue_size();        // 队列长度
 
  
    int queue_fullpop();     //清空队列,全部出队
 
  
    ~Queue()
    {
        cout<<"这是析构函数"<
   }
 
  
};
 
  
int Queue::queue_empty()         //判空
{
 
  
    return front==tail;
 
  
}
 
  
int Queue::queue_full()        //判满
{
 
  
    return (tail+1)%MAX ==front;
 
  
}
int Queue::queue_push(datatype e)        //入队
{
 
  
    data[tail]=e;
    tail++;
    cout<<"入队成功"<
    return 1;
 
  
}
int Queue::queue_pop()          //出队
{
 
  
    int pop=data[front];
    cout<
    front++;
    return 1;
}
int Queue::queue_size()        // 队列长度
{
 
  
    return (tail+MAX-front)%MAX;
}
int Queue::queue_fullpop()     //清空队列,全部出队
{
    for(int i=front;i!=tail;i++)
    {
       cout<
    }
    cout<<"清空队列成功"<
    return 1;
}
 
  
int main()
{
        Queue q1;
        q1.queue_push(8);
        q1.queue_push(9);
        q1.queue_push(6);
        q1.queue_push(5);
        q1.queue_push(8);
        q1.queue_pop();
        q1.queue_pop();
        int size=q1.queue_size();
        cout<<"队列长度为"<
 
  
        q1.queue_fullpop();
 
  
    return 0;
}
 
  

9.8号作业_第2张图片

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