【学习点滴-数据结构-栈&队列】 链式队列的实现及应用
来源:互联网 发布:淘宝小二联系方式 编辑:程序博客网 时间:2024/05/05 15:02
队列的链式实现源码如下:这是之后的链队列操作的基础。
#include <stdio.h>#include <stdlib.h>#include <malloc.h>#define OK 1#define ERROR 0#define QOVERFLOW -1 typedef int QElem,Status;typedef struct QNode{ QElem data; QNode *next; }QNode,*QueuePtr;typedef struct{ QueuePtr front; QueuePtr rear; }Queue;Status InitQueue(Queue &q){ q.rear = q.front = (QueuePtr)malloc(sizeof(QNode)); if(!q.front){ exit(QOVERFLOW); } q.front->next = NULL; return OK; }Status EnQueue(Queue &q,QElem e){ QueuePtr node = (QueuePtr)malloc(sizeof(QNode)); if(!node){ exit(QOVERFLOW); } node->data = e; node->next = NULL; q.rear->next = node; q.rear = node; return OK; }Status QueueEmpty(Queue q){ return (q.front == q.rear); }Status DeQueue(Queue &q,QElem &e){ if(QueueEmpty(q)){ return ERROR; } QueuePtr p = q.front->next;//待删除节点 e = p->data; q.front->next = p->next; if(q.rear == p){//是否只有一个元素 q.rear = q.front; } free(p); return OK; }Status DestroyQueue(Queue &q){ while(q.front){ q.rear = q.front->next; free(q.front); q.front = q.rear; } return OK; } void visit(QueuePtr node){ printf("visit % d \n",node->data); } Status QueueTraverse(Queue q){ QueuePtr node = q.front->next; while(node){ visit(node); node = node->next; } } Status GetHead(Queue q,QElem &e){ if(QueueEmpty(q)){ return ERROR; } QueuePtr p = q.front->next; e = p->data; } main(){ Queue queue; InitQueue(queue); int rands,res; for(int i = 0;i<100;i++){ rands = rand()%1000; EnQueue(queue,rands); GetHead(queue,res); printf("入队:%d 队头:%d\n",rands,res); } while(!QueueEmpty(queue)){ GetHead(queue,res); DeQueue(queue,rands); printf("队头:%d 出队: %d\n",res,rands); } system("pause"); return 0; }
- 【学习点滴-数据结构-栈&队列】 链式队列的实现及应用
- 数据结构学习---队列的链式储存实现
- 【学习点滴-数据结构-栈&队列】 栈的应用--递归的实现-汉诺塔
- [数据结构]链式队列的实现。
- 数据结构-链式队列的实现
- 数据结构---队列的链式实现
- 数据结构 - 队列的链式实现
- 双链表、链式栈、链式队列 及实现
- 双链表、链式栈、链式队列 及实现
- 数据结构学习之队列的链式存储的C++实现
- 数据结构学习----链式队列(Java实现)
- 重温数据结构:队列的链式实现、顺序实现及循环队列
- 数据结构的C实现_链式队列
- 队列的链式表示和实现(数据结构)
- java数据结构之链式队列的实现
- 数据结构-->队列的链式实现 ADT
- 数据结构和算法--队列的链式实现
- JAVA数据结构之链式队列的实现
- Linux中Workqueue机制分析
- python读取xml脚本
- ubuntu 下如何以root用户登录
- 数据库导入oracle-sqlldr informix-dbload
- LINUX 的OID中英文对照
- 【学习点滴-数据结构-栈&队列】 链式队列的实现及应用
- 作为创业公司 如何面对被山寨
- 什么是 .manifest 文件
- jQuery插件 -- jQuery UI插件
- 吐槽python之snmp
- 定投能否赚钱
- Tomcat无法启动、以及端口号的修改解决
- java.lang.NoClassDefFoundError: javax/persistence/EntityListeners 异常解决
- 一些软件设计的原则