#include<stdio.h>
#include<stdlib.h>
typedef struct node
{
int data;
struct node *pnext;
}Node, *pnode;
typedef struct queue
{
pnode front;
pnode rear;
}QUEUE;
QUEUE q;
void creat_queue() //创建队列
{
q.front = q.rear = (pnode)malloc(sizeof(Node));
q.front->pnext = q.rear->pnext = NULL;
}
void input_queue(int num) //入队
{
pnode p1;
p1 = (pnode)malloc(sizeof(Node));
p1->pnext = NULL;
p1->data = num;
q.rear->pnext = p1;
q.rear = p1;
}
int is_empty() //判断队空
{
if(q.front->pnext == NULL)
return 1;
return 0;
}
int output_queue() //出队
{
int num;
if(!is_empty())
{
pnode temp;
temp = q.front;
num = q.front->pnext->data;
q.front = temp->pnext;
free(temp);
return num;
}
else
return 0;
}
void top_queue() //输出对顶元素
{
if(!is_empty())
{
printf("%d\n",output_queue());
}
return;
}
void destory_queue() //销毁队列
{
q.rear = q.front->pnext;
free(q.front);
q.front = q.rear;
}
int main()
{
creat_queue();
input_queue(20);
input_queue(12);
input_queue(34);
input_queue(50);
top_queue();
//destory_queue();
//top_queue();
return 0;
}
队列:
入队和出队**重要
出队(判断队列是否为空)