c语言版数据结构(奇迹冬瓜)-单链式队列
来源:互联网 发布:海岛奇兵火炮数据 编辑:程序博客网 时间:2024/05/17 06:04
(一)
队列(FIFO)先进先出模式,包含初,毁,清,空,长,得,进,出。八种基本操作。现以两种存储方式为例,来讲解队列的用法。
(二)
单 链式存储结构
//----头文件-----#include<stdio.h>#include<stdlib.h>//-----宏定义-----#define TURE 1#define ERROR 0#define OVERFLOW -2//-----结构体及替换-----typedef int Bool;typedef struct QNode{int data;struct QNode *next;}QNode,*QueuePtr;typedef struct{QueuePtr front;QueuePtr rear;}LinkQueue;
壹。初(初始化队列)
(图1)
Bool InitQueue(LinkQueue *Q){if(!(Q->front=Q->rear=(QueuePtr)malloc(sizeof(QNode)))){exit(OVERFLOW);}Q->front->next=NULL;return TURE;}
贰。 毁(销毁队列)
Bool DestroyQuueue(LinkQueue *Q){while(Q->front){Q->rear=Q->front->next;free(Q->front);Q->front=Q->rear;}return TURE;}
叁。清(清空队列)
Bool ClearQueue(LinkQueue *Q){if(Q->front!=Q->rear){Q->rear=Q->front;Q->front=NULL;}return TURE;}
肆。空(判断空队列)
Bool QueueEmpty(LinkQueue Q){return Q.front==Q.rear?TURE:ERROR;}
伍。长(返回队列长)
int QueueLength(LinkQueue Q){int length=0;QueuePtr PStart=Q.front->next;while(Q.rear!=PStart){length++;PStart=PStart->next;}return length;}
陆。得(得到队列头)
Bool GetHead(LinkQueue Q,int *e){if(Q.front==Q.rear){return ERROR;}*e=Q.front->data;return TURE;}
柒。进(进入队列)
Bool EnQueue(LinkQueue *Q,int e){QueuePtr p=(QueuePtr)malloc(sizeof(QNode));if(!p){exit(OVERFLOW);}p->data=e;p->next=NULL;Q->rear->next=p;Q->rear=p;return TURE;}
捌。出(走出队列)
Bool DeQueue(LinkQueue *Q,int *e){QueuePtr p;if(Q->front==Q->rear){return ERROR;}p=Q->front->next;Q->front->next=p->next;if(Q->rear==p){Q->rear=Q->rear;}free(p);return TURE;}
- c语言版数据结构(奇迹冬瓜)-单链式队列
- c语言版数据结构(奇迹冬瓜)-队列实战(1)离散事件模拟(银行排队)
- c语言版数据结构(奇迹冬瓜)-链表实战(1)A=AUB
- c语言版数据结构(奇迹冬瓜)-链表实战(2)合并两有序线性表
- c语言版数据结构(奇迹冬瓜)-栈实战(1)栈解迷宫<迷宫算法>
- c语言版数据结构(奇迹冬瓜)-栈实战(3)括号匹配的检测
- c语言版数据结构(奇迹冬瓜)-栈实战(4)表达式求值
- c语言版数据结构(奇迹冬瓜)-串(定长顺序存储各项操作)
- c语言版数据结构(奇迹冬瓜)-数组和广义表(多维数组的基本操作)
- c语言版数据结构(奇迹冬瓜)-数组和广义表(稀疏矩阵的乘法)
- c语言版数据结构(奇迹冬瓜)-串的匹配模式算法
- c语言版数据结构(奇迹冬瓜)-链表实战(3)解升序排列的一元多项式相加
- c语言版数据结构(奇迹冬瓜)-链表实战(4)双链表解一元多项式相乘
- c语言版数据结构(奇迹冬瓜)-栈实战(2)整数进制转换<10进制到2,8,16进制>
- c语言版数据结构(奇迹冬瓜)-数组和广义表(稀疏矩阵的转置算法一)
- c语言版数据结构(奇迹冬瓜)-数组和广义表(十字链表存贮稀疏矩阵的行列值)
- c语言版数据结构(奇迹冬瓜)-数组和广义表(十字链表稀疏矩阵的加法)
- 数据结构与算法(C语言版)__链式队列
- OGRE 硬件缓冲区(硬件缓存)
- mmap函数及其映射失败原因分析
- 《micro2440开发》第四章:micro2440简介
- System V 进程间通讯(IPC、ftok)
- 山东威海居民楼液化气爆炸致1人死亡4人失踪-威海-管道液化气-爆炸事故
- c语言版数据结构(奇迹冬瓜)-单链式队列
- c# 动态加载dll文件,并实现调用其中的方法
- ERROR:Connection reset by peer
- firefox图片颜色不正常的解决办法
- 苹果AppStore商店免费App排名影响因素
- C输出(导出)到txt
- The 37th ACM/ICPC Asia Regional ChangChun Site Contest - C The Little Girl who Picks Mushrooms
- UBuntu KVM管理
- 消息队列函数(msgget、msgctl、msgsnd、msgrcv)及其范例