您的位置:首页 > 理论基础 > 数据结构算法

数据结构与算法 | 队列

2019-05-05 09:14 267 查看

一、队列

定义:队列是满足先进先出操作约束的线性表。

操作:

[code]Queue CreatQueue( int MaxSize ) //生成长度为MaxSize的空队列;
int IsFullQ( Queue Q, int MaxSize ) //判断队列Q是否已满;
void AddQ( Queue Q, ElementType item ) //将数据元素item插入队列Q中;
int IsEmptyQ( Queue Q ) //判断队列Q是否为空;
ElementType DeleteQ( Queue Q ) //将队头数据元素从队列中删除并返回。

二、顺序储蓄方式

用数组表示:

[code]const int MaxSize = 100; // 队列生长容量
typedef struck QueueNode* queue;
struck QueueNode{
int Data[MaxSize];
int rear;
int front;
}

循环队列:

两个指针,其中front指向队列第一个元素,rear指向队列的最后一个元素的下一个位置。

1、创建空队列

[code]Queue CreatQueue(){
queue q = new QueueNode();
q->rear = 0;
q->front = 0;
return q;
}

2、判断队列是否已满

[code]bool isFull(queue q){
if((q->rear+1)%MaxSize==q->front)
return true;
return false;
}

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: