c++ queue用法 cqueue用法
小乐今天给分享c++ queue用法的知识,其中也会对cqueue用法进行解释,希望能解决你的问题,请看下面的文章阅读吧!
c++ queue用法 cqueue用法
c++ queue用法 cqueue用法
1、输出数据元素:1 2 3 4 5链队列的实现/}}while(ans=='y' || ans =='y');#include using namespace std;/链队列类型定义/typedef struct QNode{struct QNode next;char data;}QNode,queuePtr;//结点的定义typedef struct linkQueue{queuePtr rear;queuePtr front;}linkQueue;//队列的定义/链队列的初始化/void initQueue_L(linkQueue &Q){Q.front=Q.rear=new QNode;//为队列申请一个空间Q.front->next=0;//使队列的头指针指向空}/销毁链队列/void destroyQueue_L(linkQueue &Q){while(Q.front){queuePtr p;p=Q.front;delete p;//销毁链队列得把结点一个一个销毁掉/入队/void enterQueue_L(linkQueue &Q,char x){QNode p;p=new QNode;p->data=x;p->next=0;Q.rear->next=p;/这里和顺序队列不一样,此处的rear不是指向队列一个元素的下一个位置,而就是指向队列的一个元素。
2、要知道Q.rear和Q.front都是指针。
3、/Q.rear=p;}//这里没有队满的情况。
4、/出队/char outputQueue_L(linkQueue &Q){char x;if(Q.front->next==0)//这里得考虑队列空的情况。
5、coutQNode p;p=Q.front->next;/应该注意顺序队列和链队列的不同之处,链队列中rear指向一个元素,front指向头结点,即个结点的前一个结点。
6、而在顺序队列中正好相反,rear指向队列中的一个元素的下一个位置,而front就是指向个结点。
7、/x=p->data;Q.front->next=p->next;if(Q.rear==p)Q.rear=Q.front;delete p;return x;}char GetQueneHead(linkQueue Q){linkQueue Q;initQueue_L(Q);enterQueue_L(Q,'a');enterQueue_L(Q,'b');enterQueue_L(Q,'c');enterQueue_L(Q,'d');coutcoutcoutcout//coutdestroyQueue_L(Q);。
本文到这结束,希望上面文章对大家有所帮助。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系 836084111@qq.com 删除。