Leap Day8——数据结构与算法 队列

3.3 假上溢


//假上溢的条件

front != 0;

rear = MAXQSIZE;

解决方法:

引入循环队列

base[0]接在base[MAXQSIZE-1]之后,若rear+1 == M,则令rear = 0;

实现方法:

利用模(mod,C语言中:%)运算

插入元素:

Q.base[Q.rear] =x;//插入元素放在尾指针指向的位置

Q.rear = (Q.rear + 1) % MAXSIZE

删除元素:

x = Q.base[Q.front];//头指针指向的元素赋值给x

Q.front = (Q.front + 1) % MAXSIZE

3.4 解决队空和队满条件相同的情况


由于队空和队满都是 front == rear

解决方案

1)另外设一个标志以区分队空、队满

2)另设一个变量,记录元素个数

3)少用一个元素空间

队满条件:(rear + 1)%MAXQSIZE == front

3.5 循环队列的初始化


Status InitQueue (SqQueue &Q){

Q.base = new QElemType[MAXQSIZE];//分配数组空间
if(!Q.base) exit(OVERFLOW); //存储配置失败
Q.front = Q.rear = 0;   //头尾指针置为0,队列位空
return OK;

}

3.6 求循环队列的长度


int QueueLength (SqQueue Q){

return(Q.rear-Q.front + MAXQSIZE) % MAXQSIZE

}

3.7 循环队列 入队


Status EnQueue (SqQueue &Q,QElemType e){

if((Q.rear+1)%MAXQSIZE == Q.front)  return ERROR;//队满
Q.base[Q.rear] =x;//插入元素放在尾指针指向的位置
Q.rear = (Q.rear + 1) % MAXSIZE //队尾指针加一

}

3.8 循环队列 出队


Status DeQueue (SqQueue &Q,QElemType &e){

if(Q.rear == Q.front)   return ERROR;//队空
x = Q.base[Q.front];//头指针指向的元素赋值给x
Q.front = (Q.front + 1) % MAXSIZE

}

3.9 顺序队列取队头元素


SElemType GetHead(SqQuere Q){

if(Q.front != Q.rear)//队列不为空
return  Q.base[Q.front];//返回队头指针元素的值,队头指针不变

}


4、链队的基本操作

=========

4.1 链队的类型定义


#define MAXSIZE 100//最大队列长度

typedef struct Qnode{

QElemType data;

struct Qnode *next;

}QNode,*QuenePtr;

![](https://img-blog.csdnimg.cn/1ae4f43f9c734f948d50880e

真题解析、进阶学习笔记、最新讲解视频、实战项目源码、学习路线大纲
详情关注公中号【编程进阶路】

e1681ecd.png)

typedef struct{

QuenePtr front;//队头指针

QuenePtr rear;//队尾指针

}LinkQueue

4.2 链队列初始化


4.3 销毁链队列


4.4 将元素e入队


4.5 链队列出队


最后

javascript是前端必要掌握的真正算得上是编程语言的语言,学会灵活运用javascript,将对以后学习工作有非常大的帮助。掌握它最重要的首先是学习好基础知识,而后通过不断的实战来提升我们的编程技巧和逻辑思维。这一块学习是持续的,直到我们真正掌握它并且能够灵活运用它。如果最开始学习一两遍之后,发现暂时没有提升的空间,我们可以暂时放一放。继续下面的学习,javascript贯穿我们前端工作中,在之后的学习实现里也会遇到和锻炼到。真正学习起来并不难理解,关键是灵活运用。

css源码pdf

JavaScript知识点
前端必要掌握的真正算得上是编程语言的语言,学会灵活运用javascript,将对以后学习工作有非常大的帮助。掌握它最重要的首先是学习好基础知识,而后通过不断的实战来提升我们的编程技巧和逻辑思维。这一块学习是持续的,直到我们真正掌握它并且能够灵活运用它。如果最开始学习一两遍之后,发现暂时没有提升的空间,我们可以暂时放一放。继续下面的学习,javascript贯穿我们前端工作中,在之后的学习实现里也会遇到和锻炼到。真正学习起来并不难理解,关键是灵活运用。

[外链图片转存中…(img-3ElU3vVa-1720820154364)]

[外链图片转存中…(img-7tmyVOUw-1720820154365)]

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值