#include<iostream>
#include<malloc.h>
using namespace std;
typedef struct qnode
{
int data;
struct qnode *next;
}qtype;
typedef struct qptr
{
qtype *front,*rear;
}squeue;
squeue lq;
int empty(squeue *lq) //判断队列是否为空
{
return lq->rear==lq->front?1:0;
}
void initqueue(squeue *lq) //初始化队列
{
qtype *p;
p=(qtype *)malloc(sizeof(qtype));
p->next=NULL;
lq->front=lq->rear=p;
}
int enqueue(squeue *lq,int x) //元素进栈
{
qtype *p;
p=(qtype *)malloc(sizeof(qtype));
p->data=x;
p->next=lq->rear->next;
lq->rear->next=p;
lq->rear=p;
return 1;
}
int outqueue(squeue *lq) //元素出栈
{
qtype *p;
while(empty(lq)==0)
{
p=lq->front->next;
cout<<p->data;
lq->front->next=p->next;
if(lq->front->next==NULL)
lq->rear=lq->front;
free(p);
}return 1;
}
int gethead(squeue *lq) //取队头元素
{
if(empty(lq)==0)
{
cout<<"队头元素为:"<<endl;
cout<<lq->front->next->data<<endl;
return 1;
}
}
int main()
{
initqueue(&lq);
for(int i=1;i<=6;i++)
enqueue(&lq,i);
gethead(&lq);
outqueue(&lq);
}
队列基本操作的实现
最新推荐文章于 2023-10-16 15:20:03 发布