队列

作者: Airjoden | 来源:发表于2019-03-02 18:10 被阅读0次

    队列是一种特殊的线性表
    只允许在表的前端(front)进行删除操作
    在表的后端(rear)进行插入操作

    (1)初始化队列:Init_Queue(q) ,初始条件:队q 不存在。操作结果:构造了一个空队;
    (2)入队操作: In_Queue(q,x),初始条件: 队q 存在。操作结果: 对已存在的队列q,插入一个元素x 到队尾,队发生变化;
    (3)出队操作: Out_Queue(q,x),初始条件: 队q 存在且非空,操作结果: 删除队首元素,并返回其值,队发生变化;
    (4)读队头元素:Front_Queue(q,x),初始条件: 队q 存在且非空,操作结果: 读队头元素,并返回其值,队不变;
    (5)判队空操作:Empty_Queue(q),初始条件: 队q 存在,操作结果: 若q 为空队则返回为1,否则返回为0。

    (1)将循环队列置为空

    //将队列初始化
    SeQueue::SeQueue()
    { front=0;
    rear=0;
    cout<<"init!"<<endl;
    }
    

    (2)判断循环队列是否为空

    int SeQueue::Empty()
    { if(rear==front) return(1);
    else return(0);
    }
    

    (3)在循环队列中插入新的元素x

    void SeQueue::AddQ(ElemType x)
    { if((rear+1) % MAXSIZE==front) cout<<" QUEUE IS FULL! "<<endl;
    else{ rear=(rear+1) % MAXSIZE;
    elem[rear]=x;
    cout<<" OK!";
    }
    }
    

    (4)删除队列中队首元素

    ElemType SeQueue::DelQ()
    { if(front==rear)
    { cout<<" QUEUE IS EMPTY! "<<endl; return -1;}
    else{ front=(front+1) % MAXSIZE;
    return(elem[front]);
    }
    }
    

    (5)取队列中的队首元素

    ElemType SeQueue::Front()
    { ElemType x;
    if(front== rear)
    cout<<"QUEUE IS EMPTY "<<endl;
    else x= elem[(front+1)% MAXSIZE];
    return (x);
    }
    

    相关文章

      网友评论

          本文标题:队列

          本文链接:https://www.haomeiwen.com/subject/ohahyqtx.html