数据结构之队列

队列理解为一种链式线性表,这种链表是“先进先出”

代码如下:

#include <stdio.h>
#include<stdlib.h>


typedef struct node
{

   int data;
   struct node *next;

}linklist;


linklist  *init_queue(void) //是队列初始化
{

   linklist *Q=(linklist *)malloc(sizeof(linklist));
   Q->data=0;
   Q->next=NULL;
   return Q;

}
void   e_queue(linklist *Q,int data) //进入队列
{
     int i=0;
      linklist *q=Q;
     linklist *l= (linklist *)malloc(sizeof(linklist));
     l->data=data;
    for(i=0;i< Q->data;i++)
          q=q->next;

      l->next=q->next;
      q->next=l;
      Q->data++;
}
int is_empty(linklist *l) //队列是否为空
{
   if(l->next==NULL || l->data==0)
    {
      return 1;
    }
  else
     return 0;
}
int  delet(linklist *l) //出队列
{

   if(is_empty(l))
       return -1;
   else
    {
        linklist  *p=l->next;
         int data =p->data;
        l->next=p->next;
        free(p);
        return data;
   }

}
void  print(linklist *Q) //队列遍历打印
{
    linklist *l=Q->next;
   while(l!=NULL)
    {
        printf("%d ->",l->data);
        l=l->next;

    }
    printf("null\n");
}
int   main()
{
   linklist *q=NULL;
   q=init_queue();
   e_queue(q,1);
   e_queue(q,2);
   e_queue(q,3);
   e_queue(q,4);
   e_queue(q,5);
   print(q);
    int data;

   data=delet(q);
   data=delet(q);
    print(q);
    free(q);

   return 0;

}





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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值