每天一个小程序(9)——链队
来源:互联网 发布:sql语句查询两张表 编辑:程序博客网 时间:2024/05/22 05:18
#include <stdio.h>#include <stdlib.h>typedef int datatype;typedef struct node{datatype data;struct node *next;}QNode;typedef struct{QNode *front,*rear;}LQueue;//链队//初始化LQueue* Init_LQueue(){LQueue* q;QNode *p;q = (LQueue*)malloc(sizeof(LQueue));p = (QNode*)malloc(sizeof(QNode));p->next = NULL;q->front = q->rear = p;return q;}//入队void In_LQueue(LQueue* q,datatype x){QNode* p;p = (QNode*)malloc(sizeof(QNode));p->data = x;p->next = NULL;q->rear->next = p;//将p连接到尾部q->rear = p;//使rear指向新的尾部}//判队空int Empty_LQueue(LQueue* q){if(q->front == q->rear)return 1;elsereturn 0;}//出队int Out_LQueue(LQueue* q,datatype *x){QNode* p;if(Empty_LQueue(q))return 0;else{p = q->front->next;//将队头的第一个元素赋予pq->front->next = p->next;//将第二个元素放在队头的next*x = p->data;free(p);if(q->front->next == NULL)q->rear = q->front;return 1;}}void main(){LQueue* q = Init_LQueue();int data;printf("入队:\n");scanf("%d",&data);while(data != -1){In_LQueue(q,data);scanf("%d",&data);}printf("\n出队:\n");while(Out_LQueue(q,&data)){printf("%d ",data);}printf("\n");}
小结
队列是限定仅能在表尾一端进行插入,表头一端进行删除操作的线性表;
队列中的元素具有先进先出的特点;
队头、队尾元素的位置分别由称为队头指针和队尾指 针的变量指示。
入队操作要修改队尾指针,出队操作要修改队头指针。
0 0
- 每天一个小程序(9)——链队
- 每天一个小程序(4)——顺序栈
- 每天一个小程序(6)—— 链栈
- 每天一个小程序(18)——“牛津"词典
- 每天一个小程序(19)——选择排序
- 每天一个小程序(1)——链表的创建
- 每天一个小程序(3)——双向链表
- 每天一个小程序(5)——栈的应用数制转换
- 每天一个小程序(7)——C++中sort函数的应用
- 每天一个小程序(8)——顺序循环队列
- 每天一个小程序(10)——直接插入排序
- 每天一个小程序(11)——折半插入排序
- 每天一个小程序(12)——交换排序之冒泡排序
- 每天一个小程序(13)——统计字符个数
- 每天一个小程序(14)——交换排序之双向冒泡排序
- 每天一个小程序(15)——交换排序之快速排序
- 每天一个小程序(16)——交换排序之快速排序2
- 每天一个小程序(17)——全排列递归实现
- Copy Html To Clipboard
- python中把一数据库表 数据存入另一个数据库中
- if else 这点事
- HDU 1598 find the most comfortable road (枚举+Kruskal)
- 出现在嵌入式DSP上可用于实现各种编解码器
- 每天一个小程序(9)——链队
- showDialog IE与火狐兼容问题
- 设计模式学习之——六大设计原则之五:迪米特法则
- Haar 分类器
- KMP字符串模式匹配
- android Dalvik虚拟机
- android 程序控制GPS WIFI 蓝牙
- 淘金网络Voip网络电话的概述
- Search Insert Position