#include <iostream>
#include <string>
#include <vector>
using namespace std;
/**
队列的链式表示
*/
typedef struct QNode
{
int data;
struct QNode *next;
} QNode,*QueuePtr;
typedef struct
{
QueuePtr front;//队头指针
QueuePtr rear;//队尾指针
}LinkQueue;
//初始化
int initQueue(LinkQueue &Q)
{
Q.rear = new QNode;
Q.front = Q.rear;
Q.front->next = NULL;//带头结点
return 1;
}
//入队
int enQueue(LinkQueue &Q,int e)
{
QueuePtr p = new QNode;
p->data = e;
p->next = NULL;
Q.rear->next = p;
Q.rear = p;
return 1;
}
//取队头
int getHead(LinkQueue &Q)
{
if(Q.front!=Q.rear)
{
cout<<"queue head:"<<Q.front->next->data<<endl;
return Q.front->data;
}
}
//出队
int deQueue(LinkQueue &Q)
{
if(Q.front==Q.rear)
{
cout<<"deQueue err: queue null"<<endl;
return -1;
}
QueuePtr p = Q.front->next;
Q.front->next = p->next;
delete p;
return 1;
}
int main()
{
LinkQueue queue;
initQueue(queue);
enQueue(queue,1);
enQueue(queue,2);
enQueue(queue,3);
enQueue(queue,4);
enQueue(queue,5);
deQueue(queue);
getHead(queue);
}
线性表-队列的链式表示
最新推荐文章于 2024-01-27 20:41:14 发布
