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

数据结构-队列

目录

  • 前言
  • 一、队列及其抽象数据类型
    • 1.1 队列的基本概念
    • 1.2 队列的抽象数据类型
  • 二、队列的实现
    • 2.1 顺序表示
      • 2.1.1 结构定义
      • 2.1.2 基本操作的实现
    • 2.2 链式表示
      • 2.2.1 结构定义
      • 2.2.2 基本操作的实现
  • 总结

前言

本篇文章介绍队列的基础知识,包括队列的抽象数据类型以及队列的实现。

一、队列及其抽象数据类型

1.1 队列的基本概念

基本定义 限定在表的一端进行插入操作,另一端进行删除操作的线性表
逻辑结构 一种特殊的线性表,一对一关系
存储结构 顺序存储和链式存储,常用顺序存储
运算规则 进行删除操作的一端称为队头,进行插入操作的一端称为队尾,访问结点按照先进先出(FIFO)的原则
队列的插入操作通常称为入队
队列的删除操作通常称为出队

队列的示意图如图1.1所示
在这里插入图片描述

图1.1 队列示意图

1.2 队列的抽象数据类型

ADT Queue
{数据对象:D={ai|ai ∈ElemSet,i=1,2,3,...n,n >= 0}数据关系:S={<ai-1,ai>|ai-1,ai∈D,i=2,...,n}约定an为队尾,a1为队头基本操作:	initQueue(&Q)操作结果:构造一个空的队列QdestroyQueue(&Q)初始条件:队列Q已存在操作结果:队列Q被销毁isEmptyQueue(&Q)初始条件:队列Q已存在操作结果:判断队列Q是否为空队列lengthQueue(&Q)初始条件:队列Q已存在操作结果:返回队列Q的长度enQueue(&Q, e)初始条件:队列Q已存在操作结果:插入元素e为队列的队尾元素deQueue(&Q, &e)初始条件:队列Q已存在操作结果:删除队列Q的队头元素,用e返回被删除的元素getElemQueue(Q, &e)初始条件:队列Q已存在且为非空队列操作结果:用e返回队头元素...
}ADT Queue

二、队列的实现

2.1 顺序表示

2.1.1 结构定义

用顺序存储来表示队列时,要分配一块连续的内存空间来存放队列的元素,并用两个指针变量分别表示队头和队尾。
队列的结构定义如下

//顺序队列的定义#define SUCCESS 1
#define ERROR 0
#define OVERFLOW -1
#define MAXQSIZE 100   //队列最大元素个数//队列数据类型定义
typedef char QElemType;//定义队列类型
struct SeqQueue {QElemType* base;  //队列指针int front;        //数据元素下标,假设为队头指针int rear;		  //数据元素下标,假设为队尾指针
};//定义队列类型指针
typedef struct SeqQueue* PSeqQueue;

利用一块连续的存储单元依次存放自队头到到尾的数据元素
base指针指向这块存储单元的起始地址
front表示队头的下标
rear表示队尾的下标
MAXQSIZE表示队列的最大元素个数
在这里插入图片描述

图2.1 顺序队列示意图

假设MAXQSIZE=4,顺序队列的动态示意图如图2.2
在这里插入图片描述

图2.2 顺序队列的动态示意图

在顺序队列中,同栈一样存在队列溢出问题。
当队列满时,再做入队操作,称为上溢,即对图2.2中的第三个图再做入队操作,会造成上溢;
当队列为空时,再做出队操作,称为下溢,即对图2.2中的第一个和第五个图再做出队操作,会造成下溢

特别地,如果对图2.2中的第五个图进行入队操作,则会造成溢出,而实际上这时队列的前端可能还有可用的空间,因此,这种现象称为假溢出,即front = MAXQSIZE

通常,解决假溢出采用的方法是,把顺序队列从逻辑上看作是一个环形,也称为环形队列,为了在逻辑上形成环形队列,则需要在每次进行入队和出队操作时,对MAXQSIZE进行取余

当环形队列已有MAXQSIZE-1个数据元素时,如果再进行入队操作,则front = rear,与空队列的情况重合,会出现无法判断队列的情况。
为了区分空队列与满队列两种情况的环形队列,一般是牺牲队列的一个结点空间,当队列已有MAXQSIZE-1个数据元素时,则称队列已满的情况。如图2.3所示
空对列:front = rear
满队列: (rear+1)%MAXQSIZE = front

在这里插入图片描述

图2.3 环形队列的情况图

2.1.2 基本操作的实现

  1. 顺序队列的初始化

    //6.1 队列初始化
    void initSeqQueue(PSeqQueue queue)
    {assert(queue);queue->base = (QElemType*)malloc(sizeof(QElemType) * MAXQSIZE);if (NULL == queue->base){printf("malloc fail!\n");exit(OVERFLOW);}queue->front = 0;queue->rear = 0;
    }
    
  2. 顺序队列的销毁

    //6.2 销毁队列
    void destorySeqQueue(PSeqQueue queue)
    {assert(queue);free(queue->base);queue->base = NULL;
    }
    
  3. 顺序队列的入队
    step1 判断队列是否为满队列
    step2 入队

    //6.5 入队
    int enSeqQueue(PSeqQueue queue, QElemType e)
    {assert(queue);if ((queue->rear + 1) % MAXQSIZE == queue->front) //判断队满return ERROR;queue->base[queue->rear] = e;queue->rear = (queue->rear + 1) % MAXQSIZE;return SUCCESS;
    }
    
  4. 顺序入队的出队
    step1 判断队列是否为空队列
    step2 出队

    //6.6 出队
    int deSeqQueue(PSeqQueue queue, QElemType* e)
    {assert(queue);if (queue->front == queue->rear)//判断队空return ERROR;*e = queue->base[queue->front];queue->front = (queue->front + 1) % MAXQSIZE;return SUCCESS;
    }
    
  5. 获取顺序队列的队头元素
    step1 判断队列是否为空队列
    step2 获取队头元素

    //6.7 获取队头元素
    int getQElemSeqQueue(PSeqQueue queue, QElemType* e)
    {assert(queue);if (queue->front == queue->rear)//判断队空return ERROR;*e = queue->base[queue->front];return SUCCESS;
    }
    

2.2 链式表示

2.2.1 结构定义

队列的链接表示就是用一个单链表来表示队列,队列的每个元素对应链表的一个结点,结点的结构与单链表的结构一样。为了强调队头和队尾都是队列的属性,这里对队列增加一层封装,引入LinkQueue结构的定义,这样的存储的队列简称链接队列。

//链接队列的定义
//不带头结点的链表
#define SUCCESS 1
#define ERROR 0
#define OVERFLOW -1//队列数据类型定义
typedef char QElemType;//链接队列结点定义
struct QueueNode;
typedef struct QueueNode* PQueueNode;
struct QueueNode {QElemType data;PQueueNode next;
};//链接队列类型定义
struct LinkQueue {PQueueNode front;	//队头指针PQueueNode rear;		//队尾指针
};
typedef struct LinkQueue LinkQueue;
//指向链接队列类型的指针类型
typedef struct LinkQueue* PLinkQueue;

假设queue是PLinkQueue类型的变量,则图2.4为队列的链接表示
在这里插入图片描述

图2.4 队列的链接表示

2.2.2 基本操作的实现

  1. 链接队列的初始化

    //7.1 队列初始化
    void initLinkQueue(PLinkQueue queue)
    {assert(queue);queue->front = NULL;queue->rear  = NULL;
    }
    
  2. 链接队列的销毁

    //7.2 销毁队列
    void destoryLinkQueue(PLinkQueue queue)
    {assert(queue);PQueueNode p = queue->front;while (p){PQueueNode q = p->next;free(p);p = q;}queue->front = NULL;queue->rear  = NULL;
    }
    
  3. 链接队列的入队

    //7.4 入队
    int enLinkQueue(PLinkQueue queue, QElemType e)
    {assert(queue);//创建一个队列结点PQueueNode newNode = (PQueueNode)malloc(sizeof(struct QueueNode));if (NULL == newNode){printf("malloc fail!n");return ERROR;}newNode->data = e;newNode->next = NULL;if (NULL == queue->front)//判断当前队列是否为空queue->front = newNode;elsequeue->rear->next = newNode;queue->rear = newNode;return SUCCESS;
    }
    
  4. 链接队列的出队

    //7.5 出队
    int deLinkQueue(PLinkQueue queue, QElemType* e)
    {assert(queue);if (NULL == queue->front)//判断空队列return ERROR;*e = queue->front->data;PQueueNode p = queue->front;queue->front = queue->front->next;free(p);if (NULL == queue->front) //如果出队后,队列为空,为了避免野指针,则将队尾置空queue->rear = NULL;return SUCCESS;
    }
    
  5. 获取链接队列的队头元素

    //7.6 获取队头元素
    int getQElemLinkQueue(PLinkQueue queue, QElemType* e)
    {assert(queue);if (NULL == queue->front)  //判断空队列return ERROR;*e = queue->front->data;return SUCCESS;
    }
    

总结

完整代码: https://gitee.com/PYSpring/data-structure/tree/master/queue_code

相关文章:

数据结构-队列

目录 前言一、队列及其抽象数据类型1.1 队列的基本概念1.2 队列的抽象数据类型 二、队列的实现2.1 顺序表示2.1.1 结构定义2.1.2 基本操作的实现 2.2 链式表示2.2.1 结构定义2.2.2 基本操作的实现 总结 前言 本篇文章介绍队列的基础知识&#xff0c;包括队列的抽象数据类型以及…...

Go Map 源码分析(一)

Go语言中的map是通过哈希表实现的&#xff0c;其底层结构和实现机制如下&#xff1a; 一、hash 结构 hmap结构体&#xff1a;是map的头部结构&#xff0c;主要字段及含义如下&#xff1a; count&#xff1a;表示当前哈希表中的元素数量&#xff0c;与len()函数相对应。flags…...

天机学堂5-XxlJobRedis

文章目录 梳理前面的实现&#xff1a;Feign点赞改进 day07-积分系统bitmap相关命令签到增加签到记录计算本月已连续签到的天数查询签到记录 积分表设计签到-->发送RabbitMQ消息&#xff0c;保存积分对应的消费者&#xff1a;**消费消息 用于保存积分**增加积分查询个人今日积…...

SpringBoot整合junit

SpringBoot 整合 junit 特别简单&#xff0c;分为以下三步完成: 1在测试类上添加 SpringBootTest 注解2使用 Autowired 注入要测试的资源3定义测试方法进行测试 1.实验准备&#xff1a; 创建一个名为 springboot_junit_test 的 SpringBoot 工程&#xff0c;工程目录结构如下…...

Jenkins-pipeline Jenkinsfile说明

一. 简介&#xff1a; Jenkinsfile 是一个文本文件&#xff0c;通常保存在项目的源代码仓库中&#xff0c;用于定义 Jenkins Pipeline 的行为。使用 Jenkinsfile 可以使 CI/CD 流程版本化&#xff0c;并且易于共享和审核。 二. 关于jenkinsfile&#xff1a; jenkins的pipeline…...

SpringMVC 实战指南:打造高效 Web 应用的秘籍

第一章&#xff1a;三层架构和MVC 三层架构&#xff1a; 开发服务器端&#xff0c;一般基于两种形式&#xff0c;一种 C/S 架构程序&#xff0c;一种 B/S 架构程序使用 Java 语言基本上都是开发 B/S 架构的程序&#xff0c;B/S 架构又分成了三层架构三层架构&#xff1a; 表现…...

结合帧级边界检测和深度伪造检测,定位部分伪造音频攻击中的篡改区域

Integrating frame-level boundary detection and deepfake detection for locating manipulated regions in partially spoofed audio forgery 摘要&#xff1a; 部分伪造音频是一种深度伪造的变体&#xff0c;它通过引入伪造或外部来源的善意音频片段来操纵音频语句&#xf…...

人工智能之深度学习_[2]-PyTorch入门

文章目录 PyTorch1.PyTorch简介1.1 什么是PyTorch1.2 PyTorch特点1.3 PyTorch发展历史 2 张量创建2.1 什么是张量2.2 基本创建方式2.3 线性和随机张量2.4 0、1、指定值张量2.5 指定元素类型张量 3 张量类型转换3.1 张量转换为NumPy数组3.2 NumPy数组转换为张量3.3 提取标量张量…...

vue2与vue3的区别

目录 1. 性能 2. 组合式 API 3. 生命周期钩子 4. 片段&#xff08;Fragments&#xff09; 5. 递归组件 6. 自定义渲染器 7. 全局 API 8. 组件内部的 this 9. 模板语法 10. 兼容性 总结 Vue 2 和 Vue 3 是 Vue.js 框架的两个主要版本&#xff0c;它们在多个方面有所不…...

八股学习 Mysql

八股学习 Mysql 常见面试问题优化其他 定位慢查询方案一&#xff1a;开源工具方案二&#xff1a;MySQL自带慢日志 SQL执行计划示例场景名词解释 索引概念底层数据结构聚簇索引、二级索引&#xff08;非聚簇索引&#xff09;覆盖索引覆盖索引应用场景创建原则索引失效 SQL优化表…...

主从复制

简述mysql 主从复制原理及其工作过程&#xff0c;配置一主两从并验证。 主从原理&#xff1a;MySQL 主从同步是一种数据库复制技术&#xff0c;它通过将主服务器上的数据更改复制到一个或多个从服务器&#xff0c;实现数据的自动同步。 主从同步的核心原理是将主服务器上的二…...

服务器数据恢复—Zfs文件系统数据恢复案例

服务器数据恢复环境&故障&#xff1a; 一台zfs文件系统的服务器&#xff0c;管理员误操作删除了服务器上的数据。 服务器数据恢复过程&#xff1a; 1、将故障服务器中所有硬盘做好标记后取出&#xff0c;硬件工程师检测后没有发现有硬盘存在硬件故障。以只读方式将所有硬盘…...

Linux安装docker,安装配置xrdp远程桌面

Linux安装docker&#xff0c;安装配置xrdp远程桌面。 1、卸载旧版本docker 卸载旧版本docker命令 yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine现在就是没有旧版本的d…...

Windows11电脑总是一闪一闪的,黑一下亮一些怎么解决

Windows11电脑总是一闪一闪的&#xff0c;黑一下亮一些怎么解决 1. 打开设备管理器2. 点击显示适配器3. 更新下方两个选项的驱动3.1 更新驱动Inter(R) UHD Graphixs3.2 更新驱动NVIDIA GeForce RTX 4060 Laptop GPU 4. 其他文章快来试试吧&#x1f970; 1. 打开设备管理器 在电…...

Low-Level 大一统:如何使用Diffusion Models完成视频超分、去雨、去雾、降噪等所有Low-Level 任务?

Diffusion Models专栏文章汇总:入门与实战 前言:视频在传输过程中常常因为各种因素(如恶劣天气、噪声、压缩和传感器分辨率限制)而出现质量下降,这会严重影响计算机视觉任务(如目标检测和视频监控)的性能。现有的视频修复方法虽然取得了一些进展,但通常只能针对特定的退…...

使用 Blazor 和 Elsa Workflows 作为引擎的工作流系统开发

开发一个完整的工作流系统使用 Blazor 和 Elsa Workflows 作为引擎&#xff0c;可以实现一个功能强大的工作流管理和设计系统。下面将提供详细的步骤和代码实现&#xff0c;展示如何在 Blazor 中开发一个基于 Elsa Workflows 的工作流系统。 项目概述 我们的工作流系统将包含以…...

调试Hadoop源代码

个人博客地址&#xff1a;调试Hadoop源代码 | 一张假钞的真实世界 Hadoop版本 Hadoop 2.7.3 调试模式下启动Hadoop NameNode 在${HADOOP_HOME}/etc/hadoop/hadoop-env.sh中设置NameNode启动的JVM参数&#xff0c;如下&#xff1a; export HADOOP_NAMENODE_OPTS"-Xdeb…...

mkv转码mp4(ffmpeg工具)

基于windows&#xff0c;Linux也可以用&#xff0c;都是命令行 下载路径&#xff08;https://github.com/BtbN/FFmpeg-Builds/releases&#xff09; 下载安装包&#xff1a;ffmpeg-n6.1-latest-win64-lgpl-6.1.zip&#xff0c;&#xff08;根据自己的平台选择下载&#xff09;并…...

前端项目搭建和基础配置

这个模块主要是介绍从零开始搭建项目的一些操作&#xff0c;包含一些前端常用的配置&#xff0c;这里只是一部分&#xff0c;会在后续的文章中逐步进行补充和完善 一、创建项目 在项目路径下使用以下命令生成前后端项目 npm create vite输入项目名称&#xff0c;框架选择Vue…...

计算机网络 (49)网络安全问题概述

前言 计算机网络安全问题是一个复杂且多维的领域&#xff0c;它涉及到网络系统的硬件、软件以及数据的安全保护&#xff0c;确保这些元素不因偶然的或恶意的原因而遭到破坏、更改或泄露。 一、计算机网络安全的定义 计算机网络安全是指利用网络管理控制和技术措施&#xff0c;保…...

【Qt】02-信号与槽函数

发生的原因与事件 前言一、什么是信号与槽&#xff08;Signals and Slots&#xff09;&#xff1f;1.1 信号&#xff08;Signals&#xff09;1.2 槽&#xff08;Slots&#xff09;1.3 连接方式 二、调用基本的信号与槽函数2.1 代码分析connect()的用法 2.2 结果展示 三、自定义…...

CVPR 2024 机器学习方向总汇(多任务、联邦学习、迁移学习和对抗等)

1、Machine Learning(机器学习)多任务、联邦学习、迁移学习和对抗等 Molecular Data Programming: Towards Molecule Pseudo-labeling with Systematic Weak Supervision &#x1f44d;摘要Improving Physics-Augmented Continuum Neural Radiance Field-Based Geometry-Agnos…...

spring中bean的循环依赖细节描述

首先&#xff0c;循环依赖不是一件好事&#xff0c;设计上几乎不会这么设计。但是总有时候要碰到一起奇怪的循环依赖。 spring bean循环依赖之所以能实现&#xff0c;也是有条件的&#xff0c;构造函数的依赖显然不行。而bean生命周期的实例化和属性设置是分阶段的&#xff0c…...

LeetCode - #187 Swift 实现重复的DNA序列

网罗开发 &#xff08;小红书、快手、视频号同名&#xff09; 大家好&#xff0c;我是 展菲&#xff0c;目前在上市企业从事人工智能项目研发管理工作&#xff0c;平时热衷于分享各种编程领域的软硬技能知识以及前沿技术&#xff0c;包括iOS、前端、Harmony OS、Java、Python等…...

【gin】gin中使用protbuf消息传输go案例

在 Gin 中使用 Protobuf 进行高效消息传输 Protobuf&#xff08;Protocol Buffers&#xff09;是一种高效的二进制序列化协议&#xff0c;广泛用于高性能场景的数据传输。相比 JSON&#xff0c;Protobuf 具有更小的体积和更快的解析速度&#xff0c;非常适合服务间通信或前后端…...

Vue.js 动态设置表格最大高度的实现

概述 在现代 Web 开发中&#xff0c;响应式设计至关重要&#xff0c;尤其是在处理复杂的布局和数据表格时。表格通常会受到多种因素的影响&#xff0c;如分页、合计行或动态内容&#xff0c;这可能导致表格高度的变化。本文将介绍一个基于 Vue.js 的方法 setMaxHeight&#xf…...

Springboot 注解缓存使用教程

Spring Boot Cache 注解使用教程 Spring Boot 提供了强大的缓存抽象,开发者可以通过注解快速实现缓存功能,从而提高系统性能。本教程将全面介绍 Spring Boot 提供的缓存相关注解及其作用,并结合示例讲解实际应用。 1. 常用缓存注解概览 Spring Boot 缓存提供以下核心注解…...

TCP协议与TCP SYN Flood攻击

✍作者&#xff1a;柒烨带你飞 &#x1f4aa;格言&#xff1a;生活的情况越艰难&#xff0c;我越感到自己更坚强&#xff1b;我这个人走得很慢&#xff0c;但我从不后退。 &#x1f4dc;系列专栏&#xff1a;网络安全从菜鸟到飞鸟的逆袭 目录 一&#xff0c; TCP握手二&#xf…...

Cloud Foundry,K8S,Mesos Marathon弹性扩缩容特性对比

一、Cloud Foundry 使用Scaling an Application Using App Autoscaler插件&#xff0c;基于资源使用情况触发简单扩缩容 CPU、内存、Http带宽、延时等 监控这些资源的使用情况决定扩缩容策略&#xff1a;实例是增加还是减少 Instance Limits 限制实例数量范围&#xff0c;定义…...

python轻量级框架-flask

简述 Flask 是 Python 生态圈中一个基于 Python 的Web 框架。其轻量、模块化和易于扩展的特点导致其被广泛使用&#xff0c;适合快速开发 Web 应用以及构建小型到中型项目。它提供了开发 Web 应用最基础的工具和组件。之所以称为微框架&#xff0c;是因为它与一些大型 Web 框架…...

Git实用指南:忽略文件、命令别名、版本控制、撤销修改与标签管理

目录 1.忽略特殊文件 1.1.那如何配置我们需要忽略的文件的呢&#xff1f; 1.2.如何检验效果&#xff1f; 2.给命令配置别名 3.基本操作之版本回退 3.1.使用场景&#xff1a; 3.2.使用方法&#xff1a; 4.撤销修改 情况一&#xff1a;对于工作区的代码&#xff0c;还没…...

神经网络常见面试题

梯度消失和梯度爆炸 1. 梯度消失&#xff08;Vanishing Gradient&#xff09; 定义&#xff1a; 梯度消失是指在反向传播过程中&#xff0c;梯度逐渐变得非常小&#xff0c;导致前面几层的权重更新非常缓慢&#xff0c;甚至几乎不更新&#xff0c;从而影响网络的学习过程。特…...

数据结构漫游记:动态实现栈(stack)

嘿&#xff0c;各位技术潮人&#xff01;好久不见甚是想念。生活就像一场奇妙冒险&#xff0c;而编程就是那把超酷的万能钥匙。此刻&#xff0c;阳光洒在键盘上&#xff0c;灵感在指尖跳跃&#xff0c;让我们抛开一切束缚&#xff0c;给平淡日子加点料&#xff0c;注入满满的pa…...

PyTorch使用教程- Tensor包

### PyTorch使用教程- Tensor包 PyTorch是一个流行的深度学习框架&#xff0c;它提供了一个易于使用的API来创建和操作张量&#xff08;Tensors&#xff09;。张量是一个多维数组&#xff0c;类似于NumPy中的ndarray&#xff0c;但它是基于GPU的&#xff0c;支持自动求导。本文…...

在 Vue 3 项目中集成和使用 vue3-video-play

前言 随着视频内容的普及&#xff0c;视频播放功能在现代 Web 应用中变得越来越重要。如果你正在开发一个 Vue 3 项目&#xff0c;并且需要快速集成视频播放功能&#xff0c;vue3-video-play 是一个轻量级且易于使用的 Vue 3 组件。本文将介绍如何在 Vue 3 项目中使用 vue3-vi…...

02_登录窗口

新建场景 重命名为GameRoot 双击GameRoot进入新场景 同样摄像机清除格式 删除平行光并关闭渲染灯光的天空盒 新建空节点重命名为GameRoot GameRoot为游戏的根节点 在整个游戏中都不会被删除 在游戏的根节点下创建UI的根节点Canvas 创建一个空节点 作为UI根节点下的 登录场景UI…...

基于 JFinal 的国产微服务框架

Jboot 是一个基于 JFinal、Dubbo、Seata、Sentinel、ShardingSphere、Nacos 等开发的国产框架。 其特点是&#xff1a; 1、基于 JFinal 完整的 MVC ORM 支持。2、支持多数据源、分库分表和分布式事务。3、支持 Dubbo RPC 的完整功能&#xff0c;有超过 1亿 用户产品正在使用…...

ASP.NET Core - 配置系统之配置提供程序

ASP.NET Core - 配置系统之配置提供程序 3. 配置提供程序3.1 文件配置提供程序3.1.1 JSON配置提供程序3.1.2 XML配置提供程序3.1.3 INI配置提供程序 3.2 环境变量配置提供程序3.3 命令行配置提供程序3.4 内存配置提供程序3.5 配置加载顺序 3.6 默认配置来源 3. 配置提供程序 前…...

Axios 封装:处理重复调用与内容覆盖问题

问题描述&背景 下拉选择框&#xff0c;支持搜索&#xff0c;搜索时携带参数调用接口并更新下拉选项下拉选择连续进行多次搜索&#xff0c;先请求但响应时间长的返回值会覆盖后请求但响应时间短的举例&#xff1a; 搜索后先清空选项&#xff0c;再输入内容进行搜索。清空后…...

MySQL程序之:使用DNS SRV记录连接到服务器

在域名系统&#xff08;DNS&#xff09;中&#xff0c;SRV记录&#xff08;服务位置记录&#xff09;是一种资源记录&#xff0c;它使客户端能够指定指示服务、协议和领域的名称。DNS查找该名称会返回一个回复&#xff0c;其中包含该领域中提供所需服务的多个可用服务器的名称。…...

Swift Parameter-free Attention Network模型详解及代码复现

研究动机 在深度学习领域,超分辨率技术的发展面临着 模型复杂度与推理速度 之间的权衡。传统的基于注意力的超分辨率网络虽然能提高性能,但往往需要较大的感受野和参数化的注意力图,这可能导致推理速度下降。 为了解决这一问题,研究人员提出了Swift Parameter-free Atten…...

React进阶之react.js、jsx模板语法及babel编译

React React介绍React官网初识React学习MVCMVVM JSX外部的元素props和内部的状态statepropsstate 生命周期constructorgetDerivedStateFromPropsrendercomponentDidMount()shouldComponentUpdategetSnapshotBeforeUpdate(prevProps, prevState) 创建项目CRA&#xff1a;create-…...

渗透测试之XEE[外部实体注入]漏洞 原理 攻击手法 xml语言结构 防御手法

目录 原理 XML语言解释 什么是xml语言&#xff1a; 以PHP举例xml外部实体注入 XML语言结构 面试题目 如何寻找xxe漏洞 XEE漏洞修复域防御 提高版本 代码修复 php java python 手动黑名单过滤(不推荐) 一篇文章带你深入理解漏洞之 XXE 漏洞 - 先知社区 原理 XXE&…...

macOS安装Gradle环境

文章目录 说明安装JDK安装Gradle 说明 gradle8.5最高支持jdk21&#xff0c;如果使用jdk22建议使用gradle8.8以上版本 安装JDK mac系统安装最新&#xff08;截止2024.9.13&#xff09;Oracle JDK操作记录 安装Gradle 下载Gradle&#xff0c;解压将其存放到资源java/env目录…...

openwrt下oaf插件编译安装,实现上网行为监控

文章目录 入门级APP青少年模式设备屏幕使用时间电脑浏览器使用时间限制Surpal 介绍安装使用进阶级专业级旁路由方案openwrt路由器固件编译OAF(Open App Filter)安装编译带有oaf的固件固件烧写设备上电启动应用特征库设置黑白名单及应用访问限制骨灰级ref守护孩子视力,用科技“…...

Top期刊算法!RIME-CNN-BiLSTM-Attention系列四模型多变量时序预测

Top期刊算法&#xff01;RIME-CNN-BiLSTM-Attention系列四模型多变量时序预测 目录 Top期刊算法&#xff01;RIME-CNN-BiLSTM-Attention系列四模型多变量时序预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 基于RIME-CNN-BiLSTM-Attention、CNN-BiLSTM-Attention、R…...

GPT-4o背后的语音技术

GPT-4o背后的语音技术 GPT-4o是一个any2any的多模态模型,能够接受文本、音频、图像、视频等多模态输入,也能够生成包含文本、语音、图像和视频等混合内容的多模态输出。本文主要谈语音多模态的实现,并分享一些对于语音研究未来发展的看法。 GPT-4o (“o” 代表 “omni”) …...

数据库存储上下标符号,sqlserver 2008r2,dm8

sqlserver 2008r2&#xff1a; 数据类型需要用nvarchar插入数据时字符串前需要用N create table test( col1 varchar(50), col2 nvarchar(50) ) insert into test(col1,col2) values(U⁴⁵⁶⁷⁸⁹⁰D₁₂₃₄₅₆₇₈₉₀,U⁴⁵⁶⁷⁸⁹⁰D₁₂₃₄₅₆₇₈₉₀) insert into…...

【25】Word:林涵-科普文章❗

目录 题目​ NO1.2.3 NO4.5.6 NO7.8 NO9.10 NO11.12 不连续选择&#xff1a;按住ctrl按键&#xff0c;不连续选择连续选择&#xff1a;按住shift按键&#xff0c;选择第一个&#xff0c;选择最后一个。中间部分全部被选择 题目 NO1.2.3 布局→纸张方向&#xff1a;横向…...

全面解析计算机网络:从局域网基础到以太网交换机!!!

一、局域网的基本概念和体系结构 特点: 覆盖较小的地理范围较低的时延和误码率局域网内的各节点之间以“帧"为单位进行传输支持单播、广播、多播 单播(一对一发送帧)&#xff1a;如 A->B广播(一对全部发送帧)&#xff1a;如 A->BCDEFG多播(一对部分发送帧)&#xff…...