学习笔记之数据结构篇-05顺序队列
2015-04-22 22:30
316 查看
/*顺序队列的简要实现 * * */ #include <stdio.h> #include <stdlib.h> #define MAXSIZE 20 struct QueueArray; typedef int ElementType; typedef struct QueueArray* PtrToQueue; typedef PtrToQueue Queue; struct QueueArray{ ElementType data[MAXSIZE]; int front; int rear; }; Queue InitQueue();/*初始化队列*/ void ClearQueue(Queue Q);/*清空队列*/ void QueueEmpty(Queue Q);/*检查队列是否为空*/ int QueueLength(Queue Q);/*获取队列长度*/ int GetHead(Queue Q);/*获取队列头元素*/ int EnQueue(Queue Q, ElementType e);/*入列*/ int DeQueue(Queue Q);/*出列*/ /*初始化队列*/ Queue InitQueue(){ Queue Q = malloc(sizeof(struct QueueArray)); Q->front = 0; Q->rear = 0; return Q; } /*清空队列*/ void ClearQueue(Queue Q){ Q->front = Q->rear = 0; } /*检查队列是否为空*/ void QueueEmpty(Queue Q){ if (Q->front == Q->rear) printf("\n队列为空\n"); else printf("\n队列不为空\n"); } /*获取队列长度*/ int QueueLength(Queue Q){ return (Q->rear - Q->front + MAXSIZE) % MAXSIZE; } /*获取队列头元素*/ int GetHead(Queue Q){ if (Q->front == Q->rear) return NULL; return Q->data[Q->front]; } /*入列*/ int EnQueue(Queue Q, ElementType e){ if ((Q->rear + 1) % MAXSIZE == Q->front) return NULL; Q->data[Q->rear] = e; Q->rear = (Q->rear + 1) % MAXSIZE; return e; } /*出列*/ int DeQueue(Queue Q){ if (Q->front == Q->rear) return NULL; int e = Q->data[Q->front]; Q->front = (Q->front + 1) % MAXSIZE; return e; } void main(){ Queue Q; Q = InitQueue(); printf("入列: \n"); for (int i = 1; i <= 10; i++){ printf(" %d",EnQueue(Q, i)); } QueueEmpty(Q); printf("队列长度为:%d\n", QueueLength(Q)); printf("队列头元素为:%d\n", GetHead(Q)); printf("\n"); printf("出列: \n"); for (int i = 1; i <= 5; i++){ printf("%d ",DeQueue(Q, i)); } QueueEmpty(Q); printf("队列长度为:%d\n", QueueLength(Q)); printf("队列头元素为:%d\n", GetHead(Q)); }
相关文章推荐
- 学习笔记之数据结构篇-03顺序栈
- 学习笔记之数据结构篇-06链式队列
- 【学习笔记----数据结构05-栈与队列】
- 数据结构 学习笔记之:顺序栈的C语言实现
- 【JavaEE学习笔记】Hibernate_05_数据类型转换和大对象处理,QBC(junit),DAO接口
- 数据结构与算法学习笔记——队列
- 学习笔记之数据结构篇-02单链表
- 学习笔记------数据结构(C语言版) 队列的顺序存储/循环队列
- 学习笔记--数据结构(之二)队列
- [Android新手学习笔记05]-如何进行活动Activity之间的跳转以及数据传递
- python 学习笔记 3 -- 数据结构篇上
- FreeRTOS学习笔记——任务间使用队列同步数据
- 队列学习笔记 顺序队列
- SAP BW平面文件特征数据的加载——视频学习笔记04和05
- Delphi 2010学习笔记(8)---数据类型(顺序类型)---2011-01-19
- 【学习笔记----数据结构07-队列】
- python 学习笔记 3 -- 数据结构篇下
- 数据结构与基本算法的学习笔记-顺序搜索-2
- [算法学习笔记]数据结构之栈和队列
- 数据结构学习笔记 --- 队列(循环队列-队列的顺序表示和实现)