您的位置:首页 > 编程语言

Exercises3.3 E7

2013-08-29 17:16 323 查看
E7.重新编写课本中队列处理的方法,使用一个标志而不是保持对了中元素个数的计数来指示满队列。

enum Error_code{success,overflow,underflow};

typedef int Queue_entry

const int maxqueue = 10;

class Queue

{

public:

    Queue();

    bool empty() const;

    Error_code serve();

    Error_code append(const Queue_entry item);

    Error_code retrieve(Queue_entry item) const;

protected:

    int front,rear;

    Queue_entry entry[maxqueue];

    bool flag;  //¿Õʱ flag=1 ·Ç¿Õʱ flag=0

};

Queue::Queue()

{

    rear = mmaxqueue-1;

    front = 0;

    flag = true;

}

bool Queue::empty()const

{

    return flag;

}

Error_code Queue::append(const Queue_entry item)

{

    if(!empty()&&(rear+1)%maxqueue == front)  //empty:(rear+1)%maxqueue == front

        retrun overflow;

    flag = false;

    rear= (rear+1)%maxqueue;

    entry[rear] = item;

    return success;

}

Error_code Queue::serve()

{

    if(empty())

        return underflow;

    if(rear == front)

        flag = true;

    front = ((front+1) == maxqueue?0:(front+1));

    return success;

}

Error_code Queue::retrieve(Queue_entry item) const

{

    if(empty())

        return underflow;

    item = entry[front];

    return success;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  编程