Queue--队列(c语言简单实现)

 1 #include<stdlib.h>
 2 typedef char ele;
 3 typedef struct node{
 4     ele e;
 5     struct node     qnode;
 6 }QNode,*Qptr;
 7 
 8 typedef struct{
 9     Qptr front;
10     Qptr rear;
11 }Queue;
12 
13 //初始化空队列
14 void initQueue(Queue *q){
15     q->front=q->rear=(QNode *)malloc(sizeof(QNode));
16     if(!q->front)exit(0);
17     q->front->qnode=NULL;
18 }
19 
20 //插入队列
21 void insert(Queue *q,ele e){
22     QNode node = (QNode *)malloc(sizeof(QNode));
23     if(!node)exit(0);
24     node->e=e;
25     node->qnode=NULL;
26     q->rear->qnode=node;
27     q->rear=node;
28 }
29 
30 //out queue
31 ele delQueue(Queue *q){
32     if(q->front==q->rear)return NULL;
33     QNode node = q->front->qnode;
34     ele e = node->e;
35     q->front->qnode=node->qnode;
36     if(q->rear==q)q->rear=q->front;
37     free(node);
38     return e;
39 }
40 
41 //clear queue
42 void clearQueue(Queue *q){
43     if(q->front==q->rear)return ;
44     while(q->front!=q->rear){
45         QNode node = q->front->qnode;
46         q->front->qnode = node->qnode;
47         free(node);
48     }
49 }

 

转载于:https://www.cnblogs.com/mozhuhao/p/4486687.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值