C++作业

作业:

手动封装一个循环顺序队列类(Stack)

私有成员属性:存放队列的数组、两个变量分别记录队头和队尾下标

公有成员函数: 入队(push( type value ))

                           出队(pop())

                           展示(show)

求队列长度(size()):要求时间复杂度在常量级别

判满( bool full())

判空(bool empty())

#include 
#define MAX_SIZE 7
using namespace std;

class Stack
{
public:
    Stack():front_sub(0),rear_sub(0)
    {

    }
    int push(int value);//入队
    void pop();//出队
    void show();//输出
    int size();//求队列长度
    bool full();//判满
    bool empty();//判空
private:
    int arr[MAX_SIZE];//存放队列的数组
    int front_sub;//队头的下表
    int rear_sub;//队尾下表

};

int Stack::push(int value)
{
    if(full())
    {
        return  -1;//队列已满
    }else
    {
        arr[rear_sub]=value;//入队
        rear_sub =(rear_sub +1)% MAX_SIZE;
         return 0;//入队成功
    }
}
void Stack::pop()//出队
{
    if(!empty())
    {
        front_sub=(front_sub+1)%MAX_SIZE;
    }
}

void Stack::show()//输出
{
    if(!empty())
    {
        for(int i=front_sub;i!=rear_sub;i=(i+1)%MAX_SIZE)
        {
            cout<

你可能感兴趣的:(c++,数据结构,开发语言)