数据结构--队列

队列的定义

特点:先进先出
在这里插入图片描述

队列的基本运算定义

**初始化:**设置队列为空
**判断队列是否为空:**若为空返回ture,否则返回false
判断队列是否未满:若为满返回ture,否则返回false
**取队头元素:**取出队头元素
条件:队列不为空
**入队:**入队,就是将元素放到队列的尾部
条件:队列不满
**出队:**删除当前队头元素

顺序队列运算的实现

class Queue{
public:
Queue();
bool empty()const;
bool full()const;
errror_code get_front(elemenType &x)const;
error_code Append(const elemenType x);
error_code serve();
private:
int count;
elemenType data[maxlen];}

存储结构的改进与循环结构的引出

关于存储结构的讨论
在这里插入图片描述
改进方法:头尾指针的设立
在这里插入图片描述
假溢出问题的解决方法:采用循环队列
在这里插入图片描述
队列满和队列空的条件相同的解决方案
在这里插入图片描述

循环队列的实现

初始化运算:
Queue::Queue(){
count =0;
front=rear=0;}
判断为空
bool Queue::empty()const{
if(rear=front) return ture;
else
return false;}
判断为满
bool Queue::full() const{
if(count=maxlen-1)return ture;
else
return false;
//等价于:return(rear+1)%maxlen=front;
}
取队首元素
error_code Queue::get_front( elemenType &x)const{
if(empty())return underflow;
else{
x=data[(front+1)%maxlen];//很关键
return success;}
入队
error_code Queue::Append(const elemenType x){
if(full()) return overflow;
else
rear= (rear+1)%maxlen;//很关键
data[rear]=x;
count++;
return success;}
出队
error_code Queue::sever(){
if(empty())return underflow;
else
front=(front+1)%maxlen;
count–;
return success;}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值