#include<iostream>
using namespace std;
typedef struct Q//队节点
{
int data;
Q* next;
};
struct point//使用point结构保存队头和队尾的位置
{
Q* front;
Q* rear;
};
point* init(void)
{
Q *head = new Q;
head->next = NULL;//头节点
point* x=new point;
x->front = head;//front指向头节点
if (x->front != NULL)
{
x->rear = x->front;
}
return x;
}
void in(point* x, int y)
{
Q* New = new Q;
if (New != NULL)
{
New->data = y;//赋值
New->next = NULL;//尾部置空
x->rear->next = New;//链接new到队列上
x->rear = New;//移动rear
}
}
int out(point* x)
{
if (x->front != x->rear)
{
Q* p = x->front->next;
x->front->next = p->next;//移动队头的位置
if (x->rear == p)//假设队列只有一个元素的时候,移动rear指向头指针
{
x->rear = x->front;
}
int y = p->data;//保存返回值
delete p;//释放内存
return y;
}
return 0;
}
int main(void)
{
point* x =init();//用指针x来保存队头队尾位置方便后续操作
}
链队列的实现
最新推荐文章于 2022-02-23 22:12:02 发布