c语言链式存储队列,C语言实现队列(链式存储)

#include#include"LQueue.h"

LQueue queue_init()

{

LQueue q;

q.front = q.rear = 0;

return q;

}

int queue_empty(LQueue q)

{

if (q.rear==q.front)

{

return true;

}

return false;

}

int queue_enter(LQueue *q, dataType e)

{

if (q->rear==MAX_OUEUE_SIZE||q->rear+1==q->front)//超出队列长度

{

return false;

}

q->LQueue_array[q->rear] = e;

printf("q.LQueue_array[%d]=%d\n", q->rear, e);

q->rear += 1;

return true;

}

int queue_delete(LQueue *q, dataType *e)

{

if (queue_empty(*q))

{

return false;

}

*e = q->LQueue_array[q->front];

//printf("q.LQueue_array[%d]=%d\n", q->front, e);

q->front += 1;

return true;

}

int get_front(LQueue q, dataType *e)

{

if (q.front==q.rear)//队空

{

return false

}

*e = q.LQueue_array[q.front];

return true;

}

void visit(LQueue q)

{

if (q.front==q.rear)

{

printf("队列为空\n");

}

int temp = q.front;

while (temp!=q.rear)

{

printf("%d ",q.LQueue_array[temp]);

temp += 1;

}

printf("\n");

}

void queue_traverse(LQueue q)

{

visit(q);

}

int get_length(LQueue q)

{

int length = q.rear - q.front;

return length;

}

void queue_clear(LQueue *q)

{

q->front = q->rear =0;

}

int main()

{

LQueue q = queue_init();

queue_enter(&q, 1);

/*queue_enter(&q, 2);

queue_enter(&q, 3);

queue_enter(&q, 4);*/

queue_traverse(q);

dataType *e = (dataType *)malloc(sizeof(*e));

queue_delete(&q, e);

printf("queue_delete(),e=%d length=%d\n", *e, get_length(q));

//queue_traverse(q, visit);

}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值