博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
队列的C语言实现
阅读量:6436 次
发布时间:2019-06-23

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

1 #include 
2 #include
3 #include
4 typedef struct node{
//定义双向链表节点 5 int data; 6 struct node *pNext; 7 }*pNODE,NODE; 8 typedef struct head{
//定义队列头节点 9 pNODE pHead;10 pNODE pTail; 11 }*pHEAD,HEAD;12 pHEAD Create(){13 pHEAD pHead=NULL;14 pHead=(pHEAD)malloc(sizeof(HEAD));15 assert(pHead);16 pHead->pHead=NULL;17 pHead->pTail=NULL;18 return pHead;19 }20 void PutData(pHEAD head,int data){21 pNODE pNode=NULL;22 pNode=(pNODE)malloc(sizeof(NODE));23 assert(pNode);24 pNode->data=data;25 pNode->pNext=NULL;26 if (head->pTail)//如果队尾不为空,则让原队尾节点指针指向新节点27 head->pTail->pNext=pNode;28 head->pTail=pNode;29 if(head->pHead==NULL)//当队列为空时,添加新结点后要修改头指针.30 head->pHead=pNode;31 }32 int GetData(pHEAD head){33 int data;34 pNODE pNode=NULL;35 pNode=head->pHead;36 assert(pNode);37 head->pHead=pNode->pNext;38 data=pNode->data;39 free(pNode);40 return data;41 }42 int main(){43 pHEAD head=NULL;44 head=Create();45 PutData(head,1);46 PutData(head,2);47 PutData(head,3);48 PutData(head,4);49 printf("%d\t",GetData(head));50 printf("%d\t",GetData(head));51 printf("%d\t",GetData(head));52 printf("%d\t",GetData(head));53 }

程序通过在线测试:

http://ideone.com/qXl964

转载于:https://www.cnblogs.com/OneL1fe/p/6529747.html

你可能感兴趣的文章
购物车练习
查看>>
js实现在表格中删除和添加一行
查看>>
SOCKET简单爬虫实现代码和使用方法
查看>>
跨域解决方案汇总
查看>>
In App Purchase
查看>>
js判断对象的类型的四种方式
查看>>
RPC框架的可靠性设计
查看>>
使用自选择创建团队
查看>>
基准测试(Benchmarks)不必消亡
查看>>
ceph 常用命令记录(完善中...)
查看>>
C# 7.3新特性一览
查看>>
用Chrome开发者工具调试一切
查看>>
简易mvvm库的设计实现
查看>>
AppDynamics把业务交易跟踪扩展到SAP环境
查看>>
[Three.js]Three.js中文文档-自定义混合方程常数
查看>>
Kafka 处理器客户端介绍
查看>>
通过分析这段代码的进化历程,或许能够加深您对JavaScript的作用域的理解
查看>>
创建对象(一):创建与继承
查看>>
深入浅出vue1.0:Vue 实例
查看>>
XML 实体扩展攻击
查看>>