队列相关知识

#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;
}

 

队列:

入队和出队**重要

出队(判断队列是否为空)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值