例题二"/>
数据结构队列例题二
#include<iostream>using namespace std;typedef struct QNode
{int data;struct QNode *next;}QNode ,*QueuePtr;typedef struct
{QueuePtr front;QueuePtr rear;
}LinkQueue;void Init(LinkQueue &Q)//初始化
{Q.front = Q.rear = new QNode;Q.rear ->next = NULL;}void EnQueue(LinkQueue &Q , int e)//插入元素
{QueuePtr p = new QNode;p ->data = e;p ->next = NULL;Q.rear ->next = p;Q.rear = p;}void DeQueue(LinkQueue &Q , int &e) //出队
{if(Q.front == Q.rear){cout<<"队空"<<'\n';return ;}QueuePtr p = new QNode;p = Q.front ->next;e = p->data;Q.front ->next = p ->next;if(Q.rear == p) Q.rear = Q.front;//若队尾元素被删除,尾节点指向头节点delete p; }int GetHead(LinkQueue &Q)//取队头元素
{if(Q.front != Q.rear){return Q.front ->next ->data;}else{cout<<"队空"<<'\n';return 0;}
}int main()
{LinkQueue Q;Init(Q);cout<<"输入数据,输入-1时停止"<<'\n';while(1){ int x;cin>>x; if(x == -1) break; EnQueue(Q,x);}int e = 0;cout<<"队头出队:";DeQueue(Q,e);cout<<e<<'\n';cout<<"取队头元素:"<<GetHead(Q);}
更多推荐
数据结构队列例题二
发布评论