中国建设银行官网主页/网站关键词优化建议

中国建设银行官网主页,网站关键词优化建议,做公司网站要那些资料,如何做好网站搜索引擎优化目录 一、队列 1.定义 2.应用 3.分类 (1)逻辑结构 (2)物理结构 顺序队列 链式队列 二、哈希存储 1.定义 2.哈希冲突 (1)开放定址法 (2)再哈希法 (3&#xf…

目录

一、队列

1.定义

2.应用

3.分类 

(1)逻辑结构

(2)物理结构

 顺序队列

 链式队列

二、哈希存储

1.定义

2.哈希冲突

(1)开放定址法

(2)再哈希法

(3)链地址法

三、练习

1.链式队列

(1)创建队列

(2)入队(尾插) 

(3)出队(头删) 

(4)遍历打印

(5)清空队列

(6)销毁队列

(7)获取队头元素

2.哈希表 

(1)创建哈希表

(2)设计哈希函数

(3)插入数据(头插) 

(4)遍历打印

(5)查找(按姓名)

(6)清空哈希表


一、队列


1.定义

        之前我们提到过的队列结构,也是一种线性存储的数据结构

        队列:从一端进行数据插入,另一端进行数据删除的线性存储结构。

        队列均遵循FIFO,即先进的先出后进的后出

2.应用

        缓冲区,缓存数据 

3.分类 

(1)逻辑结构

        从逻辑结构上看,队列均为线性结构

(2)物理结构

        从物理结构上看,队列分为顺序队列链式队列

  •  顺序队列

        队头指向第一个元素队尾指向最后一个元素后的空位置

        出队时队头向后移动,入队时队尾向后移动。

        注:普通的顺序队列会出现“假溢出”的问题,即当队尾移动到队列外时,认为队列以满,数据溢出,但实际上队列空间并未用尽,造成内存浪费。

        为解决“假溢出”问题,我们一般使用循环链表,即队列头尾相接。

        1.  空队列:队头和队尾相遇
        2.  满队列:(tail+1) 和队头在同一位置(牺牲了一个存储空间)

  •  链式队列

        链式队列即要求每个数据均有指针域,指向下一个元素。

        循环队列与链式队列的比较:从时间上看,它们的时间复杂度均为O(1)。不过循环队列需事先申请好空间,使用期间不释放,而对于链队列,每次申请和释放结点也会存在一些时间开销,如果入队出队频繁,则两者还是有细微差异。

        从空间上来看,循环队列必须有一个固定的长度,所以就有了存储元素个数和空间浪费的问题。而链队列不存在这个问题,尽管它需要一个指针域,会产生一些空间上的开销,但可以接受。所以在空间上,链式队列更加灵活

        总的来说,在可以确定队列长度最大值的情况下,建议用循环队列,如果你无法预估队列的长度时,则用链式队列。

二、哈希存储


1.定义

        哈希存储,也称散列存储:将要存储数据的关键字和数据的存储位置之间建立对应的函数关系,即哈希函数

        哈希存储的目的是为了提高数据的查找效率。哈希存储的表现方式是哈希表。

        哈希表:一段连续内存空间。

        存储数据时,按照函数关系寻找存储位置;数据查找时,根据关键字进行函数映射得到数据的存储位置。

2.哈希冲突

        哈希冲突,也称哈希矛盾,是指多个不同的输入值通过哈希函数处理后得到相同的输出值,这种情况在使用哈希表时经常发生。

        为了解决这个问题,开发者们提出了多种方法,主要包括以下几种:

(1)开放定址法

        开放定址法是一种在发生冲突时寻找另一个空闲地址的方法。这种方法的具体实现有多种,包括线性探测法、平方探测法等。

        线性探测法是当发生冲突时,顺序查看表中下一个单元,直到找到空闲单元。平方探测法则是在冲突发生的位置前后进行跳跃式探测。

(2)再哈希法

        再哈希法是构造多个不同的哈希函数,当发生冲突时,使用第二个、第三个等其他哈希函数计算新的地址,直到找到不冲突的地址为止。这种方法可以减少聚集现象,但会增加计算时间。

(3)链地址法

        链地址法是将所有哈希地址相同的记录链接在同一链表中。当发生冲突时,冲突的元素将被添加到链表的末尾。这种方法适用于频繁插入和删除操作的场景。

三、练习


1.链式队列

(1)创建队列

(2)入队(尾插) 

(3)出队(头删) 

(4)遍历打印

(5)清空队列

(6)销毁队列

        用valgrind工具验证销毁结果

(7)获取队头元素

2.哈希表 

(1)创建哈希表

 (2)设计哈希函数

(3)插入数据(头插) 

(4)遍历打印

(5)查找(按姓名)

 (6)清空哈希表

        用valgrind工具查看清空结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/69805.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【做一个微信小程序】校园地图页面实现

前言 上一个教程我们实现了小程序的一些的功能,有背景渐变色,发布功能有的呢,已支持图片上传功能,表情和投票功能开发中(请期待)。下面是一个更高级的微信小程序实现,包含以下功能:…

npm安装时无法访问github域名的解决方法

个人博客地址:npm安装时无法访问github域名的解决方法 | 一张假钞的真实世界 今天在用npm install的时候出现了github项目访问不了的异常: npm ERR! Error while executing: npm ERR! /bin/git ls-remote -h -t https://github.com/nhn/raphael.git np…

J Exp Clin Cancer Res (IF:11.4)|上海九院张建军团队发现SPP1+巨噬细胞在头颈癌中的促肿瘤机制

巨噬细胞是肿瘤免疫微环境(TIME)的重要组成部分,在不同癌症类型中表现出功能的多样性以及与预后的紧密联系。在多种癌症中,SPP1巨噬细胞已被发现是一种常见的肿瘤相关巨噬细胞(TAM)亚群,且与不良…

盛铂科技 SCP4006/4018/4040:国产袖珍式功率计 射频微波功率探头 平均功率计

在通信、电子测量等领域,功率计是确保信号稳定、系统高效运行的关键设备。盛铂科技自主研发的 SCP4000 系列自带 USB 接口的袖珍式 CW 信号平均功率计,以其卓越的性能、高性价比和便捷的操作,在众多同类产品中脱颖而出,成为行业内…

Docker+Jenkins自动化部署SpringBoot项目【详解git,jdk,maven,ssh配置等各种配置,附有示例+代码】

文章目录 DockerJenkins部署SpringBoot项目一.准备工作1.1安装jdk111.2安装Maven 二.Docker安装Jenkins2.1安装Docker2.2 安装Jenkins2.3进入jenkins 三.Jenkins设置3.1安装jenkins插件3.2全局工具配置全局配置jdk全局配置maven全局配置git 3.3 系统配置安装 Publish Over SSH …

基于角色访问控制的UML 表示

Michael E. Shin、Gail-Joon Ahn 著,UMLChina 译 摘要 在基于角色访问控制(role-based access control,RBAC)中,权限和角色相关,用户被当作相应角色的成员而获得角色的权限。RBAC 背后的首要动机是为了简…

大数据SQL调优专题——Hive执行原理

引入 Apache Hive 是基于Hadoop的数据仓库工具,它可以使用SQL来读取、写入和管理存在分布式文件系统中的海量数据。在Hive中,HQL默认转换成MapReduce程序运行到Yarn集群中,大大降低了非Java开发者数据分析的门槛,并且Hive提供命令…

计算机网络(1)基础篇

目录 1.TCP/IP 网络模型 2.键入网址--->网页显示 2.1 生成HTTP数据包 2.2 DNS服务器进行域名与IP转换 2.3 建立TCP连接 2.4 生成IP头部和MAC头部 2.5 网卡、交换机、路由器 3 Linux系统收发网络包 1.TCP/IP 网络模型 首先,为什么要有 TCP/IP 网络模型&a…

c++ 多线程知识汇总

一、std::thread std::thread 是 C11 引入的标准库中的线程类&#xff0c;用于创建和管理线程 1. 带参数的构造函数 template <class F, class... Args> std::thread::thread(F&& f, Args&&... args);F&& f&#xff1a;线程要执行的函数&…

LabVIEW用户界面(UI)和用户体验(UX)设计

作为一名 LabVIEW 开发者&#xff0c;满足功能需求、保障使用便捷与灵活只是基础要求。在如今这个用户体验至上的时代&#xff0c;为 LabVIEW 应用程序设计直观且具有美学感的界面&#xff0c;同样是不容忽视的关键任务。一个优秀的界面设计&#xff0c;不仅能提升用户对程序的…

【工业场景】用YOLOv8实现火灾识别

火灾识别任务是工业领域急需关注的重点安全事项,其应用场景和背景意义主要体现在以下几个方面: 应用场景:工业场所:在工厂、仓库等工业场所中,火灾是造成重大财产损失和人员伤亡的主要原因之一。利用火灾识别技术可以及时发现火灾迹象,采取相应的应急措施,保障人员安全和…

STM32_USART通用同步/异步收发器

目录 背景 程序 STM32浮空输入的概念 1.基本概念 2. STM32浮空输入的特点 3. STM32浮空输入的应用场景 STM32推挽输出详解 1. 基本概念 2. 工作原理 3. 应用场景 使能外设时钟 TXE 和 TC的区别 USART_IT_TXE USART_IT_TC 使能串口外设 中断处理函数 背景 单片…

利用IDEA将Java.class文件反编译为Java文件:原理、实践与深度解析

文章目录 引言&#xff1a;当.class文件遇到源代码缺失第一章&#xff1a;反编译技术基础认知1.1 Java编译执行原理1.2 反编译的本质1.3 法律与道德边界 第二章&#xff1a;IDEA内置反编译工具详解2.1 环境准备2.2 三步完成基础反编译2.3 高级反编译技巧2.3.1 调试模式反编译2.…

算法日记16:SC68 联通块问题(并查集)

一、题目&#xff1a; 二、题解&#xff1a; 1、看到求联通块问题&#xff0c;我们可以考虑使用DFS/并查集(在这里我们仅介绍并查集) 2、什么是并查集&#xff1f; 2.1&#xff1a;初始化&#xff1a;对于每一个点&#xff0c;我们都对其进行初始化操作pre[i]i pre[i]表示i的…

visual studio导入cmake项目后打开无法删除和回车

通过Cmakelists.txt导入的项目做删除和回车无法响应&#xff0c;需要点击项目&#xff0c;然后选择配置项目就可以了

ChartDB:一个基于Web的可视化数据库设计工具

这次给大家介绍一个可视化的数据库设计工具&#xff1a;ChartDB。 ChartDB 是一个免费开源的数据库可视化设计工具&#xff0c;支持的数据库包括 MySQL、MariaDB、PostgreSQL、Microsoft SQL Server、SQLite、ClickHouse 等。 对于已有的数据库&#xff0c;ChartDB 提供了一键…

elementUI tree树形控件 根据数据动态设置禁用,全选时不可选中禁用数据

需求 根据后端返回的数据禁用数据&#xff0c;将tree结构对应的数据设置为禁用状态&#xff0c;并且在点击全选后不可选中禁用数据。 效果 根据数据动态设置禁用 全选时不可选中禁用数据 代码 <template>...<div class"list-box"><div class&q…

Flutter 添加 iOS widget 小组件

环境 macOS 15.1 Xcode16.1 Flutter 3.27.4 前言 本篇文章主要记录&#xff0c;在Flutter 项目中如何正确地添加iOS 小组件&#xff0c;iOS 小组件 相关的知识在另一篇文章有记录。 iOS 14 widget 添加小组件 WidgetExtension 打开Xcode New -> Target 选择 iOS -> 搜…

LLM:GPT 系列

阅读原文&#xff1a; LLM&#xff1a;Qwen 系列 GPT&#xff08;Generative Pre-trained Transformer&#xff09;是生成式预训练语言模型&#xff0c;基于 Transformer 架构&#xff0c;专注于通过自回归的方式生成自然语言文本&#xff0c;即给定一个输入序列 x { x 1 , …

消息中间件:RabbitMQ镜像集群部署配置全流程

目录 1、特点 2、RabbitMQ的消息传递模式 2.1、简单模式&#xff08;Simple Mode&#xff09; 2.2、工作队列模式&#xff08;Work Queue Mode&#xff09; 2.3、发布/订阅模式&#xff08;Publish/Subscribe Mode&#xff09; 2.4、路由模式&#xff08;Routing Mode&am…