用标志域tag判断队空队满的入队和出队算法
题目:
若希望循环队列中的元素都能得到利用,则需设置一个标志域tag,并以tag的值为0或1来区分队头指针front和队尾指针rear相同时队列状态是空还是满。试编写与此结构相对应的入队和出队算法。
front ==rear && tag ==0,队空;
front ==rear && tag ==1,队满;
初始化:
#define MaxSize 50;
typedef struct{ElemType data[MaxSize];int front,rear,tag;
}SqQueue;
入队:
bool EnQueue(SqQueue &Q,ElemType x){if(Q.tag == 1 && Q.front == Q.rear) return false; //队满不允许插入元素;//初始时,front=rear=-1,增加元素时,rear先加1再赋值;Q.rear = (Q.rear +1)%MaxSize; //需要插入元素的位置;Q.data[Q.rear] = x;//如果队满;Q.tag =1;return true;
}
出队:
bool DeQueue(SqQueue &Q,ElemType &x){if(Q.tag ==0 && Q.front ==Q.rear) return false; //队空,不再删除元素;//假设front初始时为-1,则删除元素时,front先加1再删除元素;Q.front = (Q.front+1)%MaxSize;x = Q.data[Q.front];//如果队空;Q.tag =0;return true;
}
用标志域tag判断队空队满的入队和出队算法相关推荐
- 使用标志量消除循环链表“假溢出”的入队和出队算法
问题:要求循环变量不损失一个空间全部都能利用,设置一个标志量tag,以tag为0或为1来区分头尾指针相同时的队列状态.请编写出此结构相应的入队与出队算法. 设标志位tag,初始化时将tag置为0,当入 ...
- 队列的入队、出队基本操作
队列 先进先出的线性表(FIFO) 队尾:队列中指定了用来插入数据的一端 队头:队列中指定了用来删除数据的一端 入队:数据的插入动作 出队:数据的删除动作 1.顺序队列 //顺序队列 #define ...
- 队列的入队和出队操作
开发工具与关键技术:Visual Studio 2015 作者:杨灵武 撰写时间:2020/05/27 让我们跟着课程队列的特点.好比我们生活中也会发生的排队, 先排队的人先得到服务,先走出队列,后面 ...
- 队列的基本操作(入队、出队、清空……)
队列的基本操作(入队.出队.清空--) SqQue.h #ifndef __SQQUE_H__ #define __SQQUE_h__ typedef int element; typedef str ...
- 复习队列的入队和出队操作
开发工具与关键技术:Visual Studio 2015 作者:杨灵武 撰写时间:2020/04/27 让我们跟着唐懿芳教授的课程来回忆一下队列的特点.好比我们生活中也会发生的排队,先排队的人先得到服 ...
- 循环队列的入队,出队,求队长,取对头元素功能实现
目录 一.队列的定义 二 .真溢出与假溢出 三.解决假溢出 四.注意 五.代码 一.队列的定义 队列只能在一端插入,另一端删除,插入的一端叫队尾(rear),删除的一端叫队首(front). ...
- 循环队列,定义循环队列长度为10,编写初始化队列、入队、出队、求队长,实现10,20,30,40,50,60,70,80入队,10,20,30出队,56,67入队的算法功能。
循环队列,定义循环队列长度为10,编写初始化队列.入队.出队.求队长,实现10,20,30,40,50,60,70,80入队,10,20,30出队,56,67入队的算法功能. #include< ...
- 队列的入队、出队操作
队列的常用操作就是入队和出队,这里入队用函数insert实现,出队用函数del实现,print函数实现队列的遍历做操: #include <iostream> #include <s ...
- 单链表实现队列的基本操作(入队,出队)
单链表实现队列的基本操作(包括初始化队列,入队,出队) 构造队列结构体 struct node {int data;node *next; };struct queue {node *head, *t ...
最新文章
- bzoj1095: [ZJOI2007]Hide 捉迷藏 线段树维护括号序列 点分治 链分治
- linux /etc/fstab文件参数求解释
- 2.6内核中被废弃的pci_present()
- App 组件化/模块化之路——如何封装网络请求框架
- c语言程序设计教程ppt,《C语言程序设计教程》.ppt
- Android开发中反编译时出现Unsupported major.minor version 51.0错误的问题
- HDU6376 度度熊剪纸条
- Python 函数参数有冒号 声明后有- 箭头
- 获取mysql所有用户权限_python 获取mysql数据库列表以及用户权限
- matlab远程桌面访问:License Manager Error - 103
- react(87)--批量删除进行置空操作
- yum 安装oraclejdk_kubernetes-16:制作oraclejdk镜像
- linux服务器安装补丁包,Linux下Web服务器环境搭建LNMP一键安装包 v2.6[20141224更新] | 系统运维...
- AJAX在IE下的调试
- 脱库站库分离渗透解决MySQL禁止外连
- VSCODE无法代码跳转
- 第五模块 常用邮件沟通场景(1):求职信
- 瑞星木马防御专杀QQ,360,百度软件管家(见图为证!)
- java 拼多多电子面单打印_商家自定义模板
- selenium小白学习笔记(6) - 使用parameterized参数化