队列

来源:互联网 发布:kindle软件怎么用 编辑:程序博客网 时间:2024/06/04 20:00
#include <iostream>#include <cstdlib>using namespace std; struct queue{int *pBase;int front;int rear;};void init(queue *);bool en_queue(queue *, int );void traverse_queue(queue *);bool out_queue(queue *, int &);bool full_queue(queue *pq){   if ((pq->rear+1)%12==pq->front)   {   return true;   }   else   {   return false;   }}int main(){queue q;init(&q);en_queue(&q, 6);    en_queue(&q, 1);en_queue(&q, 65);en_queue(&q, 89);en_queue(&q, 32);en_queue(&q, 20);en_queue(&q, 36);cout << "队列为" << "\n";traverse_queue(&q);int e;if (out_queue(&q,e)){cout << "出队成功";cout << "删除元素为" <<e<< endl;}traverse_queue(&q);system("pause");return 0;}void init(queue *pq){pq->pBase = (int *)malloc(sizeof(int)* 12);//pBase为数组pq->front = pq->rear = 0;}bool en_queue(queue *pq, int val){if (full_queue(pq)){return false;}else{pq->pBase[pq->rear] = val;pq->rear = (pq->rear+1) % 12;return true;}}void traverse_queue(queue *pq){int i = pq->front;while (i!=pq->rear){cout << pq->pBase[i] << endl;i = (i + 1) % 10;}}bool emput_queue(queue *pq){if (pq->front==pq->rear){return true;}else{return false;}}bool out_queue(queue *pq, int &val){if (emput_queue(pq)){return false;}else{val = pq->pBase[pq->front];pq->front = (pq->front + 1) % 6;return true;}}

0 0