队列的基本应用

来源:互联网 发布:ubuntu嵌入式工控机 编辑:程序博客网 时间:2024/05/16 00:50
#include <iostream>using namespace std;typedef struct Qnode{Qnode *next;int data;}Qnode,*Queueptr;struct Queue{Queueptr front;Queueptr rear;   };//初始化队列bool InitQueue(Queue &queue){Queueptr p;p=new Qnode;queue.front=queue.rear=p;if (!queue.front){cout<<"内存分配失败!"<<endl;return false;}queue.front->next=NULL;return true;}//队列插入元素bool Enqueue(Queue &queue,int value){Queueptr p=new Qnode;if (!p){cout<<"内存分配失败!"<<endl;return false;}p->next=NULL;p->data=value;queue.rear->next=p;queue.rear=p;return true;}//从头开始获取队列元素void GetQueueValue(Queue &queue){Queueptr p=queue.front->next;while (p){cout<<p->data<<" ";p=p->next;}}//删除队列元素bool DeleteQueue(Queue &queue){if (queue.front==queue.rear){cout<<"队列为空,无法删除!"<<endl;return false;}Queueptr p=queue.front->next;queue.front->next=p->next;if(queue.rear==p)         //队列只有一个元素的情况queue.rear=queue.front;return true;}void main(){Queue q;InitQueue(q);for (int i=0;i<10;i++){Enqueue(q,i*10);}GetQueueValue(q);DeleteQueue(q);cout<<endl;GetQueueValue(q);}

0 0
原创粉丝点击