#include <iostream>
#include <stdlib.h>
#include <stdbool.h>
using namespace std;
typedef struct node//链式队列结点类型
{
int num;
struct node* pnext;
}qnode,*pnode;
typedef struct queue//链式队列类型
{
pnode front;
pnode rear;
}linkqueue;
void init(linkqueue &q)
{
q.front=q.rear=(pnode)malloc(sizeof(qnode));//让front和rear指向同一个结点
if(q.front==NULL)
{
cout<<"erro";
}
}
bool empty(linkqueue &q)
{
if(q.front==q.rear)
{
return true;
}
else
{
return false;
}
}
void en_queue(linkqueue &q,int num_)
{
pnode p;//新建一个结点
p=(pnode)malloc(sizeof(node));
p->num=num_;//存入数据
q.rear->pnext=p;//rear指向它
q.rear=p;
}
void out_queue(linkqueue &q)
{
if(empty(q))
{
cout<<"出栈失败";
}
else
{
pnode p;
p=q.front->pnext;//p起过度作用
q.front->pnext=p->pnext;
if(q.rear==p)
q.rear=q.front;
}
}
void traverse(linkqueue &q)
{
pnode p;
p=q.front->pnext;
while(p!=NULL)
{
cout<<p->num;
p=p->pnext;
}
}
int main()
{
linkqueue q;
init(q);
en_queue(q,1);
en_queue(q,2);
out_queue(q);
traverse(q);
}
队列的使用(动态)
最新推荐文章于 2021-05-09 14:16:50 发布