博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
单链表实现队列
阅读量:6572 次
发布时间:2019-06-24

本文共 1366 字,大约阅读时间需要 4 分钟。

#include 
#include
typedef int queue_element_t;typedef struct queue_node_s{ queue_element_t element; struct queue_node_s *restp;}queue_node_t;/*Queue front & rear pointer*/typedef struct{ queue_node_t *frontp, *rearp; int size; }queue_t;void add_to_q(queue_t *qp, queue_element_t ele){ /*Keep queue front pointer*/ if(qp->size == 0) { qp->rearp = (queue_node_t*)malloc(sizeof(queue_node_t)); qp->frontp = qp->rearp; } /*Renew queue rear pointer*/ else { qp->rearp->restp = (queue_node_t*)malloc(sizeof(queue_node_t)); qp->rearp = qp->rearp->restp; } qp->rearp->element = ele; qp->rearp->restp = NULL; ++(qp->size);}queue_element_t remove_from_q(queue_t *qp){ queue_node_t *to_freep; queue_element_t ans; to_freep = qp->frontp; ans = to_freep->element; qp->frontp = to_freep->restp; free(to_freep); --(qp->size); if(qp->size == 0) qp->rearp = NULL; return ans; }int main(void){ queue_t queue = {NULL, NULL, 0}; add_to_q(&queue, 100); add_to_q(&queue, 200); add_to_q(&queue, 300); add_to_q(&queue, 400); int i; int sum = queue.size; for(i = 0; i < sum; i++) printf("%d\n", remove_from_q(&queue));}

转载于:https://www.cnblogs.com/xbon/p/4883048.html

你可能感兴趣的文章
C#开发移动应用系列(1.环境搭建)
查看>>
hihocoder 1014 Trie树
查看>>
64位ubuntu13.10安装32位库
查看>>
轻松搭建docker应用的mesos集群
查看>>
【特别好】【位运算】maximum-xor-of-two-numbers-in-an-array
查看>>
ADO.NET笔记——使用DataSet返回数据
查看>>
【Spark篇】---SparkSQL on Hive的配置和使用
查看>>
【机器学习】--关联规则算法从初识到应用
查看>>
windows 下nginx php安装
查看>>
长生界
查看>>
FreeMarker标签介绍
查看>>
SQL 函数 instr的用法
查看>>
MOTO XT702添加开机音乐
查看>>
console.dir()和console.log()的区别
查看>>
Linux常用命令
查看>>
快速排序
查看>>
Day12-Mysql服务日志类型及增量恢复命令
查看>>
Python监控文件夹 && 发送邮件
查看>>
Netty之ByteBuf
查看>>
Codeforces Round #565 (Div. 3) C. Lose it!
查看>>