当前位置: 首页 > article >正文

考研复习之队列

循环队列

队列为满的条件

      队列为满的条件需要特殊处理,因为当队列满时,队尾指针的下一个位置应该是队头指针。但是,我们不能直接比较 rear + 1 和 front 是否相等,因为 rear + 1 可能会超出数组索引的范围。因此,我们需要使用模运算 % 来确保索引在数组范围内循环。

        

        浪费一个空间:
        在这种方法中,我们故意让队列中始终保持一个空闲位置,这样当 rear 的下一个位置是 front 时,队列就是满的。

(Q.rear + 1) % MAX_SIZE == Q.front

入队  出队

#include<iostream>
#define Maxsize 6
using namespace std;typedef struct {int data[Maxsize]; // 数组,存储Maxsize-1个元素int front, rear;   // 队列头和队列尾
} SqQueue;void init(SqQueue &Q) {Q.front = Q.rear = 0;
}bool enqueue(SqQueue &Q, int x) {if ((Q.rear + 1) % Maxsize == Q.front) // 判断循环队列是否满了return false;else {Q.data[Q.rear] = x; // 放入元素Q.rear = (Q.rear + 1) % Maxsize; // 改变队尾标记return true;}
}bool dequeue(SqQueue &Q, int &data) {if (Q.rear == Q.front) // 判断队列是否为空return false;else {data = Q.data[Q.front]; // 取出队头元素Q.front = (Q.front + 1) % Maxsize; // 改变队头标记return true;}
}bool isEmpty(SqQueue Q) {return Q.rear == Q.front;
}int main() {SqQueue Q;bool ret;int data;init(Q); // 初始化队列ret = isEmpty(Q);if (ret) {cout << "kong" << endl;} else {cout << "bu wei kong " << endl;}ret = dequeue(Q, data);if (ret) {cout << "出队的元素是" << data << endl;} else {cout << "kong zhan" << endl;}// 测试入队和出队enqueue(Q, 1);enqueue(Q, 2);enqueue(Q, 3);enqueue(Q, 4);enqueue(Q, 5);while (dequeue(Q, data)) {cout << "出队的元素是" << data << endl;}return 0;
}

链队列

用链表表示队列

#include<iostream>
#include<cstdlib>
using namespace std;
typedef struct node {int data;struct node *next;
}LinkNode; typedef struct {LinkNode * front ,* rear;//链表头,链表尾,即对头和队尾 
}LinkQueue;//用带头结点的链表来实现队列 
void init(LinkQueue &Q)
{Q.front=Q.rear=(LinkNode *)malloc(sizeof(LinkNode)); Q.front->next=NULL;
}void enqueue(LinkQueue &Q,int x)
{LinkNode *newnode;newnode=(LinkNode *)malloc(sizeof(LinkNode));newnode->data=x;Q.rear->next=newnode;Q.rear=newnode;//rear指向新的尾部 newnode->next=NULL;}int dequeue(LinkQueue &Q,int &data)
{if(Q.rear==Q.front ){cout<<"栈空"<<endl;}else{LinkNode * q=Q.front->next;//指向第一个元素 Q.front->next=q->next;data=q->data; //获取出队的元素值 if(Q.rear=q)//队列只剩一个元素,被删除后要改变rear; {Q.front=Q.rear;}}return data;
}
bool IsEmpty(LinkQueue Q)
{if(Q.front==Q.rear ){return true;}else{return false;}
}
int main()
{LinkQueue Q;init(Q); enqueue(Q,1);enqueue(Q,2);enqueue(Q,3);enqueue(Q,4);enqueue(Q,5);int data;data=dequeue(Q,data);cout<<"出对的元素值是"<<data<<" "<<endl;return 0;}

相关文章:

考研复习之队列

循环队列 队列为满的条件 队列为满的条件需要特殊处理&#xff0c;因为当队列满时&#xff0c;队尾指针的下一个位置应该是队头指针。但是&#xff0c;我们不能直接比较 rear 1 和 front 是否相等&#xff0c;因为 rear 1 可能会超出数组索引的范围。因此&#xff0c;我们需…...

Day 21: 数组中的逆序对

在股票交易中&#xff0c;如果前一天的股价高于后一天的股价&#xff0c;则可以认为存在一个「交易逆序对」。请设计一个程序&#xff0c;输入一段时间内的股票交易记录 record&#xff0c;返回其中存在的「交易逆序对」总数。 示例 1&#xff1a; 输入&#xff1a;record [9…...

【C++教程】setw()函数的使用方法

setw 是 C 中用于设置输出字段宽度的函数&#xff0c;属于 <iomanip> 头文件。以下是其使用方法及注意事项&#xff1a; 基本用法 包含头文件&#xff1a; #include <iostream> #include <iomanip> // 必须包含此头文件 using namespace std; // 避免写 std…...

智慧高速,安全护航:视频监控平台助力高速公路高效运营

随着我国高速公路里程的不断增长&#xff0c;交通安全和运营效率面临着前所未有的挑战。传统的监控方式已难以满足现代化高速公路管理的需求&#xff0c;而监控视频平台的出现&#xff0c;则为高速公路的安全运营提供了强有力的技术支撑。高速公路视频监控联网解决方案 高速公路…...

Jboss漏洞再现

一、CVE-2015-7501 1、开环境 2、访问地址 / invoker/JMXInvokerServlet 出现了让下载的页面&#xff0c;说明有漏洞 3、下载ysoserial工具进行漏洞利用 4、在cmd运行 看到可以成功运行&#xff0c;接下来去base64编码我们反弹shell的命令 5、执行命令 java -jar ysoserial-…...

C语言三大程序结构 单分支语句

核心概念&#xff1a;程序就像流水线&#xff0c;通过顺序、选择、循环三种结构完成复杂任务 &#x1f31f; 一、三大程序结构图解 结构类型形象比喻代码示例顺序直行马路 → 不拐弯printf("A"); printf("B");选择岔路口 → 二选一if...else循环环形跑道 …...

【Linux系统】Linux权限讲解!!!超详细!!!

目录 Linux文件类型 区分方法 文件类型 Linux用户 用户创建与删除 用户之间的转换 su指令 普通用户->超级用户(root) 超级用户(root) ->普通用户 普通账户->普通账户 普通用户的权限提高 sudo指令 注&#xff1a; Linux权限 定义 权限操作 1、修改文…...

Winform零基础从入门到精通(5)——WinForm菜单与工具栏开发详解

一、核心控件与功能 MenuStrip&#xff08;顶部菜单栏&#xff09; • 功能&#xff1a;创建应用程序主菜单&#xff0c;支持多级子菜单和快捷键。 • 关键操作&#xff1a; ◦ 添加菜单项&#xff1a;直接在菜单栏输入文字&#xff08;如“文件(F)”&#xff09;&#xff0c;…...

2.创建Collection、添加索引、加载内存、预览和搜索数据

milvus官方文档 milvus2.3.1的官方文档地址: https://milvus.io/docs/v2.3.x 使用attu创建collection collection必须要有一个主键字段、向量字段 确保字段类型与索引类型兼容 字符串类型&#xff08;VARCHAR&#xff09;通常需要使用 Trie 索引&#xff0c;而不是 AutoInd…...

AIGC 新势力:探秘海螺 AI 与蓝耘 MaaS 平台的协同创新之旅

探秘海螺AI&#xff1a;多模态架构下的认知智能新引擎 在人工智能持续进阶的进程中&#xff0c;海螺AI作为一款前沿的多功能AI工具&#xff0c;正凭借其独特的多模态架构崭露头角。它由上海稀宇科技有限公司&#xff08;MiniMax&#xff09;精心打造&#xff0c;依托自研的万亿…...

一文解读DeepSeek在法律商业仲裁细分行业的应用

引言 当AI闯入法律界&#xff1a;DeepSeek如何把商业仲裁变成“纠纷快车道” AI技术正在像水电煤一样渗透生活&#xff0c;随着DeepSeek的爆火出圈&#xff0c;全国各行各业都在如火如荼地接入DeepSeek&#xff0c;以期望利用DeepSeek的“超能力”来重塑各自行业的效能和格局&a…...

快速入手-基于Django的主子表间操作mysql(五)

1、如果该表中存在外键&#xff0c;结合实际业务情况&#xff0c;那可以这么写&#xff1a; 2、针对特殊的字典类型&#xff0c;可以这么定义 3、获取元组中的字典值和子表中的value值方法 4、对应的前端页面写法...

HTTPS协议—加密算法和中间攻击人的博弈

活动发起人小虚竹 想对你说&#xff1a; 这是一个以写作博客为目的的创作活动&#xff0c;旨在鼓励大学生博主们挖掘自己的创作潜能&#xff0c;展现自己的写作才华。如果你是一位热爱写作的、想要展现自己创作才华的小伙伴&#xff0c;那么&#xff0c;快来参加吧&#xff01…...

【大模型理论篇】CogVLM:多模态预训练语言模型

1. 模型背景 前两天我们在《Skywork R1V: Pioneering Multimodal Reasoning with Chain-of-Thought》中介绍了将ViT与推理模型结合构造多模态推理模型的案例&#xff0c;其中提到了VLM的应用。追溯起来就是两篇前期工作&#xff1a;Vision LLM以及CogVLM。 今天准备回顾一下Cog…...

AI知识补全(一):tokens是什么?

名人说&#xff1a;苔花如米小&#xff0c;也学牡丹开。——袁枚《苔》 创作者&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 目录 一、什么是Tokens&#xff1f;二、为什么Tokens如此重要&#xff1f;1.模型的输入输出限制2.…...

Wpf Avalonia-实现中英文切换工程

文章目录 language工程项目代码创建获取资源文件string工程图片主项目引用LanguageView中使用ViewModel中使用language工程项目 <Project Sdk="Microsoft.NET.Sdk"><PropertyGroup><ImplicitUsings>enable</ImplicitUsings><TargetFrame…...

pyqt5报错:qt.qpa.plugin: Could not find the Qt platform plugin “xcb“(已解决)

我在使用pyqt库的时候报错&#xff1a; qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in \ "/mnt/private_disk/anaconda3/envs/aot-manip/lib/python3.8/site-packages/PyQt5/Qt5/plugins/platforms" even though it was found. This ap…...

【MySQL数据库】触发器与事件

MySQL触发器 trigger&#xff0c;在表的插入insert、更新update、删除delete操作发生时自动执行MySQL语句。 学过Qt的都知道信号槽&#xff0c;一旦发出某个信号&#xff0c;那么就会触发关联的信号槽函数。触发器就类似于这个操作。 创建触发器时需要给出一些信息&#xff…...

【LC插件开发】基于Java实现FSRS(自由间隔重复调度算法)

&#x1f60a;你好&#xff0c;我是小航&#xff0c;一个正在变秃、变强的文艺倾年。 &#x1f514;本文讲解【LC插件开发】基于Java实现FSRS&#xff08;自由间隔重复调度算法&#xff09;&#xff0c;期待与你一同探索、学习、进步&#xff0c;一起卷起来叭&#xff01; 目录…...

java后端接收数组,数组长度超256个就会报错

1.原因 DataBinder 中默认限制了list最大只能增长到256。 2.解决方案 1.在BaseController添加InitBinder方法&#xff0c;其余继承BaseController InitBinder //类初始化是调用的方法注解public void initBinder(WebDataBinder binder) {//给这个controller配置接收list的长…...

第45章:配置更新与应用热重载策略

第45章:配置更新与应用热重载策略 作者:DogDog_Shuai 阅读时间:约25分钟 难度:中级 目录 1. 引言2. 配置更新挑战3. Kubernetes原生配置更新机制4. 应用热重载技术5. 配置更新最佳实践...

数据库MVCC详解

MVCC 1.基本介绍 数据库&#xff1a;MySQL。【很多主流数据库都使用了MVCC&#xff0c;比如MySQL的InnoDB引擎、PostgreSQL、Oracle】 MVCC&#xff0c;全称Multi-Version Concurrency Control&#xff0c;即多版本并发控制。是数据库管理系统中的一种并发控制方法。 MVCC的…...

MySQL数据库基础篇

目录 SQL的分类 数据定义语言&#xff08;DDL&#xff09;---Data Definition Language 数据操作语言(DML) ---Data Manipulation Language 数据查询语言(DQL) ---Data Query Language 数据控制语言(DCL) ---Data Control Language 事务控制语言(TCL) --- Transaction Cont…...

Rust函数、条件语句、循环

文章目录 函数**语句与表达式**条件语句循环 函数 Rust的函数基本形式是这样的 fn a_func(a: i32) -> i32 {}函数名是蛇形风格&#xff0c;rust不在意函数的声明顺序&#xff0c;只需要有声明即可 函数参数必须声明参数名称和类型 语句与表达式 这是rust非常重要的基础…...

AI比人脑更强,因为被植入思维模型【17】万物联系思维模型

万物联系,万物,并不孤立。 定义 万物联系思维模型是一种强调世界上所有事物都相互关联、相互影响的思维方式。它认为任何事物都不是孤立存在的,而是与周围的环境、其他事物以及整个宇宙构成一个有机的整体。这种联系不仅包括直接的因果关系,还涵盖了间接的、潜在的、动态的…...

Android Compose 约束布局(ConstraintLayout、Modifier.constrainAs)源码深度剖析(十二)

Android Compose 约束布局&#xff08;ConstraintLayout、Modifier.constrainAs&#xff09;源码深度剖析 一、引言 在 Android 开发中&#xff0c;布局是构建用户界面的基础。随着 Android 开发技术的不断发展&#xff0c;Jetpack Compose 作为一种全新的声明式 UI 框架应运…...

【MySQL篇】复合查询

目录 前言&#xff1a; 1&#xff0c;多表查询 2&#xff0c;自连接 3&#xff0c;子查询 3.1&#xff0c;单行子查询 3.2&#xff0c;多行子查询 3.3&#xff0c;多列子查询 3.3&#xff0c;在from子句中使用子查询 4&#xff0c;合并查询 4.1&#xff0c;union …...

点亮STM32最小系统板LED灯

对于如何点亮板载LED灯只需要掌握如何初始化GPIO引脚&#xff0c;并改变GPIO引脚的电平即可实现点亮或者熄灭LED。 Led_INFO led_info {0}; led_info 是一个结构体变量&#xff0c;类型为 Led_INFO&#xff0c;用于存储LED的状态信息。这里初始化为 {0}&#xff0c;表示所有成…...

unsloth微调QwQ32B(4bit)

unsloth微调QwQ32B(4bit) GPU: 3090 24G unsloth安装部署 pip 安装 pip install unsloth --index https://pypi.mirrors.usrc.edu.cn/simplesource /etc/network_turbopip install --force-reinstall --no-cache-dir --no-deps githttps://github.com/unslothai/unsloth.git​…...

基于腾讯云大模型知识引擎×DeepSeek的高等职业学校单独招生二级学院考前咨询系统

1、主要思路 通过大模型知识引擎DeepSeek搭建高等职业学校单独招生二级学院考前咨询专有问答&#xff0c;使得专业老师能够更好的服务考试学生&#xff0c;有利于二级学院能够更好的进行考试宣传&#xff0c;招来优秀学子&#xff01; 2、创作过程 2.1、本地部署大模型的缺陷…...