数据结构之---C语言实现链式队列
来源:互联网 发布:three.js 视频教程 编辑:程序博客网 时间:2024/04/29 21:25
//链式队列的存储//杨鑫#include <stdio.h>#include <stdlib.h>typedef int QElemType;//定义节点typedef struct QNode{QElemType data;struct QNode *next;}QNode, *QueuePtr;//定义指针typedef struct{QueuePtr front;QueuePtr rear;}LinkQueue;//插入元素e进入队列void en_Queue(LinkQueue *q, QElemType e){QueuePtr temp = (QueuePtr)malloc(sizeof(QNode));if(temp){temp->data = e;temp->next = NULL;q->rear->next = temp;q->rear = temp;}}//初始化队列void init_Queue(LinkQueue *q){q->front = q->rear = (QNode *)malloc(sizeof(QNode));q->front->next = NULL;}//创建队列void create_Queue(LinkQueue *q){int n = 0;init_Queue(q);printf("请输入要进入队列的元素,以0结束!\n");while(scanf("%d", &n)){if(n == 0)break;en_Queue(q, n);}}//e元素出队void de_Queue(LinkQueue *q, QElemType *e){if(q->front == q->rear)return;QueuePtr temp = q->front->next;if(q->front->next == q->rear)q->rear = q->front;*e = temp->data;q->front->next = temp->next;free(temp);}//判断队列是否为空int is_Empty(LinkQueue *q){if(q->front == q->rear)return 1;return 0;}//返回队列int getlength_Queue(LinkQueue *q){QueuePtr temp = q->front;int i = 0;while(temp != q->rear){++i;temp = temp->next;}return i;}//清空队列void clear(LinkQueue *q){QueuePtr temp = q->front->next;while(temp){QueuePtr tp = temp;temp = temp->next;free(tp);}temp = q->front;q->front = q->rear = NULL;free(temp);}//打印队列元素void print_Queue(LinkQueue *q){if(q->front == q->rear)return;QueuePtr temp = q->front->next;while(temp != q->rear){printf("%d ", temp->data);temp = temp->next;}printf("%d", temp->data);printf("\n");}//第一个数据出队void top_Queue(LinkQueue *q, QElemType *e){if(q->front == q->rear)return;*e = q->front->next->data;}int main(){int i = 0, k = 0, top = 0;int len;LinkQueue q;create_Queue(&q);top_Queue(&q, &top);printf("队头的元素为:%d\n", top);len = getlength_Queue(&q);printf("遍历队中的所有元素:\n");for(i = 0; i < len; i++){de_Queue(&q, &k);printf("%d ", k);}printf("\n");clear(&q);return 0;}
0 0
- 数据结构之---C语言实现链式队列
- 数据结构实现链式队列(C语言)
- c语言数据结构实现-链式队列
- 数据结构---C语言之队列的链式表示和实现(链队列)
- (C语言)队列的链式实现(数据结构十一)
- 数据结构——队列的链式实现(C语言)
- 数据结构C语言实现之链式队列的6种算法代码
- 数据结构(严蔚敏)之六——链式队列c语言实现
- 数据结构C语言实现之链式队列的6种算法代码
- C语言实现链式队列
- C语言实现链式队列
- c语言实现链式队列
- C语言 队列的链式结构的实现与表示 数据结构 队列的实现与表示
- 数据结构的C实现_链式队列
- 数据结构--用C实现链式队列
- 数据结构C语言实现之二叉树链式结构
- 数据结构之队列的实现(c语言)
- 数据结构C语言实现之循环队列
- gcc连接问题记录
- emberjs--目录结构
- LINUX遇到的问题
- ubuntu安装jdk,ubuntu设置java环境变量,ubuntu安装jdk,ubuntu设置java环境变量,ubuntu安装 jdk,ubuntu设置java环境变量
- 如何规划网站首页
- 数据结构之---C语言实现链式队列
- Ajax的原理和应用
- Servlet自学第20讲:分页技术详解
- 网络编程基础,多线程下载
- Java NIO原理图文分析及代码实现
- 动态代理
- 5月19日
- C++new和delete的使用
- [C++]LeetCode 11: Container With Most Water(最大容积/最大矩形面积)