《数据结构与算法分析——c语言描述》读后笔记 6
2015-08-16 20:52
369 查看
队列:
从上面的程序可以看到数组Array:
Rear=0,Front=1. 此时:若插入数据(入队Enqueue),则Rear向右移动一位,即Rear++;若删除数据(出队Dequeue),则Front向右移动一位,即Front++;
初始时Rear=0,Front=1.
上面定义的队列不为循环队列,所以:队列为空时,Size=0,Rear=Front-1;队列为满时,Size!=0,Rear=0。
#ifndef _Queue_h struct QueueRecord; typedef struct QueueRecord *Queue; int Empty(Queue Q); int IsFull(Queue Q); Queue CreateQueue(int MaxElements); void DisposeQueue(Queue Q); void MakeEmpty(Queue Q); void Enqueue(ElementType X, Queue Q); ElementType Front(Queue Q); void Dequeue(Queue Q); ElementType FrontAndDequeue(Queue Q); #endif #define MinQueueSize (5) struct QueueRecord { int Capacity; int Front; int Rear; int Size; ElementType *Array; }; int IsEmpty(Queue Q) { return Q->Size==0; } void MakeEmpty(Queue Q) { Q->Size=0; Q->Front=1; Q->Rear=0; }
从上面的程序可以看到数组Array:
0 | 1 | 2 | 3 | 4 |
初始时Rear=0,Front=1.
上面定义的队列不为循环队列,所以:队列为空时,Size=0,Rear=Front-1;队列为满时,Size!=0,Rear=0。
相关文章推荐
- 数据结构学习系列之线性表(四)
- 树结构的自定义及基本算法(Java数据结构学习笔记)
- 【数据结构】线性表顺序结构的操作---C/C++语言
- 【数据结构】双向循环线性表的基本操作--C++/C实现
- 【数据结构】顺序栈的基本操作操作---C/C++
- 《数据结构与算法分析——c语言描述》读后笔记 5
- 数据结构:大堆
- 使用C语言详解霍夫曼树数据结构
- 数据结构读书笔记3
- 《数据结构与算法分析——c语言描述》读后笔记 4
- <八>java数据结构与算法 队列 与 循环队列
- <七>java数据结构与算法 栈 实现单词逆序
- <六>java数据结构与算法 栈
- <五>java数据结构与算法 对象排序
- 数据结构读书笔记1
- 数据结构读书笔记2
- <四>java数据结构与算法 插入排序
- <三>java数据结构与算法 选择排序
- <二>java数据结构与算法 冒泡排序
- [Data Structure] 数据结构中各种树