数据结构栈、队列、链表、散列表

栈(stack)

栈(stack)是限制插入和删除只能在一个位置上进行的表,该位置是表的末端,叫做栈顶(top)。它是后进先出(LIFO)的。对栈的基本操作只有 push(进栈)和 pop(出栈)两种,前者相当于插入,后者相当于删除最后的元素。

队列(queue)

队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。

image-20240111210049424

链表(Link)

链表是一种数据结构,和数组同级。比如,Java 中我们使用的 ArrayList,其实现原理是数组。而LinkedList 的实现原理就是链表了。链表在进行循环遍历时效率不高,但是插入和删除时优势明显。

image-20240111210119711

散列表(Hash Table)

散列表(Hash table,也叫哈希表)是一种查找算法,与链表、树等算法不同的是,散列表算法在查找时不需要进行一系列和关键字(关键字是数据元素中某个数据项的值,用以标识一个数据元素)的比较操作。

散列表算法希望能尽量做到不经过任何比较,通过一次存取就能得到所查找的数据元素,因而必须要在数据元素的存储位置和它的关键字(可用 key 表示)之间建立一个确定的对应关系,使每个关键字和散列表中一个唯一的存储位置相对应。因此在查找时,只要根据这个对应关系找到给定关键字在散列表中的位置即可。这种对应关系被称为散列函数(可用 h(key)表示)。

用的构造散列函数的方法有:

(1)直接定址法: 取关键字或关键字的某个线性函数值为散列地址。即:h(key) = key 或 h(key) = a * key + b,其中 a 和 b 为常数。

(2)数字分析法

(3)平方取值法: 取关键字平方后的中间几位为散列地址。

(4)折叠法:将关键字分割成位数相同的几部分,然后取这几部分的叠加和作为散列地址。

(5)除留余数法:取关键字被某个不大于散列表表长 m 的数 p 除后所得的余数为散列地址,即:h(key) = key MOD p p ≤ m

(6)随机数法:选择一个随机函数,取关键字的随机函数值为它的散列地址,即:h(key) = random(key)

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

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

相关文章

刷题第十六天-扰乱字符串

扰乱字符串 题目要求 解题思路 初步分析 给定两个字符串T和S,假设T是由S变换而来的 如果T和S长度不一样,必定不能变来如果长度一样,顶层字符串S能够划分 S 1 S_1 S1​和 S 2 S_2 S2​,同样字符串T也能够划分为 T 1 T_1 T1​和…

uniapp、vue、小程序常用的一些验证规则校验方法(例如:手机号。身份证、金额等)

例如: 检查是否为空数组 、是否是空 不为空false 为空true、校验密码、校验手机号格式、校验邮箱格式、校验身份证号格式、校验值长度 不少于6位数、 电话号码加密 15288889999 转化为 152****9999、身份证号码加密、验证输入重量、金额等类型 例如 0.11 2.23…

RT-Thread 线程间通信 信号

信号 信号(又称为软中断信号),在软件层次上是对中断机制的一种模拟,在原理上,一个线程收到一个信号与处理器收到一个中断请求可以说是类似的。 信号的工作机制 信号在RT-Thread中用作异步通信,POSIX标准…

MES系统数据采集的几种方式

生产制造执行MES系统具有能够帮助企业实现生产数据收集与分析、生产计划管理、生产过程监控等的功能板块,在这里小编就不一一介绍了,主要讲讲它的数据采集功能板块,可以说,数据采集是该系统进行数据统计与生产管理等后续工作的基础…

SpringBoot默认配置文件

✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏: 循序渐进学SpringBoot ✨特色专栏: MySQL学习 🥭本文内容:SpringBoot默认配置文件 📚个人知识库: Leo知识库,欢迎大家访问 1.前言☕…

【每日一题】2696. 删除子串后的字符串最小长度-2024.1.10

题目: 2696. 删除子串后的字符串最小长度 给你一个仅由 大写 英文字符组成的字符串 s 。 你可以对此字符串执行一些操作,在每一步操作中,你可以从 s 中删除 任一个 "AB" 或 "CD" 子字符串。 通过执行操作&#xff0c…

如何在数学建模竞赛中稳定拿奖

✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。 🍎个人主页:小嗷犬的个人主页 🍊个人网站:小嗷犬的技术小站 🥭个人信条:为天地立心&…

Windows 10 Manager v3.9.0.0

软件介绍 Windows 10 Manager,Win10优化软件,香港Yamicsoft 公司开发的集微软Windows10的所有功能于一身的系统优化软件,包含40多个实用程序来优化,调整,清理,加速和修复Windows 10,可以让系统…

函数指针和回调函数

文章目录 一.函数指针1.什么是函数指针2.函数指针的形式3.函数指针的用途。1.调用函数2.作为参数进行传递 二.函数指针数组三.回调函数 一.函数指针 1.什么是函数指针 函数指针是指向函数的指针。在C语言和C中,函数指针可以用来存储函数的地址,并且可以…

【操作系统】优化MBR程序:让MBR调用显存吧

一.显存、显卡以及显示器的概述 显卡用于连接CPU和显示器,我们调用显示器时,其实就是利用显卡提供的IO接口间接地对显示器进行操作,所以显卡也称之为显示适配器。接下来我们将优化之前写的MBR程序(参考:【操作系统】BI…

学习python仅收藏此一篇就够了(集合,字典)

集合 集合的定义: 变量名称 {元素,元素} 变量名称 set() 首先,因为集合是无序的,所以集合不支持,下标索引访问。 但是集合和列表一样,是允许修改的。 #定义一个集合 my_set {"python", …

经管类CSSCI、北核期刊投稿指南数据(2023年更新)/经管类的期刊投稿指南

经管类CSSCI、北核期刊投稿指南(2023年更新) 1、内容包括:投稿指南-CSSCI版本、CSSCI扩展版本、北大核刊版本、建议期刊版本、所有期刊。 2、范围:CSSCI、CSSCI扩展、北大核刊 3、说明:包含经管类期刊的发表难度&am…

【LeetCode】2626. 数组归约运算

数组归约运算 题目题解 题目 给定一个整数数组 nums、一个 reducer 函数 fn 和一个初始值 init,返回通过依次对数组的每个元素执行 fn 函数得到的最终结果。 通过以下操作实现这个结果:val fn(init, nums[0]),val fn(val, nums[1])&#…

1. Presto基础

该笔记来源于网络,仅用于搜索学习,不保证所有内容正确。文章目录 一、presto基础操作二、时间函数0、当前日期/当前时间1、转时间戳1)字符串转时间戳 (推荐)2)按照format指定的格式,将字符串str…

AlexNet论文翻译与精读

1:该论文解决了什么问题? 图像分类问题 2:该论文的创新点? 1:使用了大的深的卷积神经网络进行图像分类; 2:采用了两块GPU进行分布式训练; 3:采用了Relu进行训练加速; 4:采用局部归一化提高模型泛化能…

Mac iTerm2 配置

Mac iTerm2 配置 安装 brew install iTerm2安装完成之后,需要重新打开终端,既可以看见安装 iTerm2 的效果。 iTerm2 美化 使用 oh-my-zsh 美化 iTerm2 终端 安装 brew install wget sh -c "$(wget https://raw.github.com/ohmyzsh/ohmyzsh/mast…

Laravel使用Kafka实践教程(从安装到使用0-1)

一、Linux安装Kafka 首先Linux服务器需要安装好Kafka,这里不再具体细说,可以看我前面的文章:Linux搭建Kafka详细一步一步指南(linux启动kafka脚本)-CSDN博客 二、Laravel安装Kafka composer require enqueue/rdkafka:0.10.18注意:版本号一…

Qt 窗口阴影边框

环境:Qt 5.15 VS2019 方法一:QGraphicsDropShadowEffect 实现方法参考链接:https://blog.csdn.net/goforwardtostep/article/details/99549750 使用此方法添加窗口阴影,会出现警告信息: 且窗口最大化与还原切换时会…

多态、抽象类和接口(深拷贝和浅拷贝)

目录​​​​​​​ 前言: 多态: 多态的定义: 向上转型: 方法重写: 再看toString方法: 动态绑定: 向下转型: 小练习: 抽象类: 什么是抽象类&am…

Logstash应用-同步ES(elasticsearch)到HDFS

1.场景分析 现有需求需要将elasticsearch的备份至hdfs存储,根据以上需求,使用logstash按照天级别进行数据的同步 2.重难点 数据采集存在时间漂移问题,数据保存时使用的是采集时间而不是数据生成时间采用webhdfs无法对文件大小进行设置解决…