栈、队列、树、哈希表

先进后出,添加元素直接memcpy 到对应数组位置就可以,top是栈中存储的元素个数,最后一个元素下标为top-1; 删除元素时直接top--; 后面添加进入的数据会覆盖原来在栈上被删除的数据。

main.c符号匹配

链栈

main.c

队列函数实现

注意判满条件,多出来一个位置用于区别 空和满两种状态,所以开了10个空间只能存储9和结构体数,且所有的位置都是循环移动的,无固定位置。

线程池

读写文件(自己写)

顺序队列完成

标准版、链式队列  

用队列实现树的层序遍历输出

gdb使用

赫夫曼树

大话数据书 --二叉树内有

      

 

哈希表

  哈希表的存储和查找,体现的是一种思想。

哈希表(Hash Table),也称为散列表,是一种数据结构,它提供了快速的数据插入、删除和查找功能。它通过使用哈希函数将键(Key)映射到表中一个位置来访问记录,从而实现高效的数据检索。

以下是哈希表的一些关键特点:

1. **哈希函数**:哈希表使用一个函数(称为哈希函数)来计算数据项的存储位置。这个函数将键通过某种算法转换为表中的一个索引值。

2. **键值对存储**:哈希表存储数据的方式是键值对(Key-Value Pairs),其中键是通过哈希函数进行映射的,而值是存储的数据。

3. **冲突解决**:由于不同的键可能通过哈希函数映射到同一个位置,这种现象称为冲突。哈希表需要一种机制来解决冲突,常见的方法有开放寻址法(Linear Probing、Quadratic Probing、Double Hashing)、链地址法(Separate Chaining)等。

4. **动态扩容**:为了保持操作的效率,哈希表通常在达到一定负载因子(已存储元素数量与哈希表容量的比值)时进行扩容,这涉及到重新计算所有元素的位置并迁移到新的更大的哈希表中。

5. **平均时间复杂度**:理想情况下,哈希表的插入、删除和查找操作的平均时间复杂度为O(1)。但在最坏的情况下,比如所有元素都映射到同一个位置,时间复杂度可能退化到O(n)。

6. **空间效率**:哈希表通常需要预分配一个足够大的内部数组来存储数据,这可能会导致空间的浪费,尤其是在负载因子较低的情况下。

哈希表广泛应用于数据库、缓存系统、字典和许多其他需要快速查找的场景中。
 

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

为什么说开放式耳机比入耳式的好?学生党必入的蓝牙耳机推荐

因为开放式耳机相比入耳式耳机更具优势,具体如下: 佩戴舒适度更高: 开放式耳机通常不需要插入耳道,不会对耳道产生压迫,长时间佩戴耳朵不易感到闷热、疼痛或不适,减少了对耳部的物理压迫和摩擦&#xff0…

深入浅出Docker

1. Docker引擎 Docker引擎是用来运行和管理容器的核心软件。通常人们会简单的将其指代为Docker或Docker平台。 基于开放容器计划(OCI)相关的标准要求,Docker引擎采用了模块化的设计原则,其组件是可替换的。 Docker引擎由如下主…

形态学的基本操作在图片中的应用

一、形态学——腐蚀操作 (缩小、变细) import cv2 import numpy as npimg_pig cv2.imread(pig.png) cv2.imshow(image_pig,img_pig) cv2.waitKey(0) cv2.destroyAllWindows()def cv_show(name, img):cv2.imshow(name, img)cv2.waitKey(0)cv2.destroyAl…

element-plus的菜单组件el-menu

菜单是几乎是每个管理系统的软件系统中不可或缺的,element-plus提供的菜单组件可以快速完成大部分的菜单的需求开发, 该组件内置和vue-router的集成,使用起来很方便。 主要组件如下 el-menu 顶级菜单组件 主要属性 mode:决定菜单的展示模式…

MySQL篇(高级字符串函数/正则表达式)(持续更新迭代)

目录 讲点一:高级字符串函数 一、简介 二、常见字符串函数 1. CONCAT() 2. SUBSTRING() 3. LENGTH() 4. REPLACE() 5. TRIM() 6. UPPER() 7. LOWER() 8. LEFT() 9. RIGHT() 10. INSTR() 11. LENTH(str) 讲点二:正则表达式 一、简介 二、…

Defining Additional PhysicalConstraints

步骤3:定义附加物理 约束条件 在此步骤中,您将定义设计的其他物理约束,例如 PACKAGE_PIN和禁止约束。 1.选择布局→I/O规划,从布局选择器打开I/O规划视图布局 在工具栏菜单中。 I/O规划视图布局显示包窗口以及I/O端口和 封装引脚窗…

华为地图服务 - 如何开启和展示“我的位置”? -- HarmonyOS自学10

一. 场景介绍 本章节将向您介绍如何开启和展示“我的位置”功能,“我的位置”指的是进入地图后点击“我的位置”显示当前位置点的功能。效果如下: 二. 接口说明 “我的位置”功能主要由MapComponentController的方法实现,更多接口及使用方法…

学习笔记(一)

前言 一、对象 1、由类建模而成,是消息、数据和行为的组合 2、可以接收和发送消息,并利用消息进行彼此的交互。消息要包含传送给对象接收的信息 3、类的实例化:把类转换为对象的过程叫类的实例化。 4、对象的特性 (1) 对象有状态&#…

QUIC的loss detection学习

PTO backoff backoff 补偿 /ˈbkɒf/PTO backoff 是QUIC(Quick UDP Internet Connections)协议中的一种机制,用于处理探测超时(Probe Timeout, PTO)重传策略 它逐步增加探测超时的等待时间,以避免网络拥塞…

【FreeRTOS】任务

1.使用stm32cubemx配置freertos 2.创建任务 我们需要在MX_FREERTOS_Init()里面创建任务 我们根据上面的任务创建方式,实现GPIO_PIN_10的反转 1.任务句柄 2.任务结构体 3.任务执行函数 4.任务函数声明 5.创建线程执行任务 hal_delay和osDelay区别?…

Qt (17)【Qt 文件操作 读写保存】

阅读导航 引言一、Qt文件概述二、输入输出设备类三、文件读写类四、文件和目录信息类五、自定义“记事本” 引言 在上一篇文章中,我们学习了Qt的事件处理机制,知道了如何响应用户的操作。但应用程序常常还需要处理文件,比如读写数据。所以&a…

应用软件系统开发 实操一:任务需求描述

一、实操一:任务需求描述 软件和信息技术服务业数据统计平台是一个为不同级别管理员提供定制化服务的系统。它主要面向数据管理员和系统运维管理员,每一种用户角色各自拥有特定的功能权限。系统运维管理员是专门针对平台基础功能的管理人员,它…

08_Python数据类型_字典

Python的基础数据类型 数值类型:整数、浮点数、复数、布尔字符串容器类型:列表、元祖、字典、集合 字典 字典(Dictionary)是一种可变容器模型,它可以存储任意类型对象,其中每个对象都存储为一个键值对。…

如何评估土壤功能?瓦赫宁根大学研究团队在土壤学一区TOP期刊最新成果给出答案!

本文首发于“生态学者”微信公众号! 土壤健康是农业可持续发展的关键因素之一,而土壤有机碳(Soil Organic Carbon, SOC)含量是衡量土壤健康最常用的指标。然而,许多土壤功能不仅受SOC总量的影响,还与其质量…

FreeRTOS学习——链表list

FreeRTOS学习——链表(列表)list,仅用于记录自己阅读与学习源码 FreeRTOS Kernel V10.5.1 参考大佬的好文章: freertos内核原理 Day1(链表) FreeRTOS-链表的源码解析 *list_t只能存储指向list_item_t的指针。每个list_item_t都…

photozoom classic 9解锁码2024年最新25位解锁码

photozoom classic 9 破解版顾及比恐龙还要稀有,我曾经和你一样一直再找,找了好几个月,也没有找到真的破解版,下载很多次, 都是病毒插件之类的 我昨天下了几次,没有一个不附带插件病毒木马的.......&#x…

基于深度学习的图像分类或识别系统(含全套项目+PyQt5界面)

目录 一、项目界面 二、代码实现 1、网络代码 2、训练代码 3、评估代码 4、结果显示 三、项目代码 一、项目界面 二、代码实现 1、网络代码 该网络基于残差模型修改 import torch import torch.nn as nn import torchvision.models as modelsclass resnet18(nn.Modul…

数据结构(2):LinkedList和链表[2]

我们在上一篇文章中着重讨论了单链表的实现。其中我们要注意单链表进行遍历时一步一步走的思想。那么这篇文章我们将继续讨论链表的更多内容,那就让我们开始吧。 1.经典单链表算法题 我们将通过几个经典的题对单链表进行进一步的认识。 (1)反转链表 206. 反转链…

cas 5.3服务器搭建

项目环境要求 jdk1.8,tomcat8 网盘下载(官网下载速度慢可以用此方法下载) 网盘链接:8910官网各稳定版本,软件包点击自取 cas5.3git代码 https://github.com/apereo/cas-overlay-template/tree/5.3 刚拉下来的代码目录…

OJ题-反转链表

给你一个单链表的头节点,请反转链表,并返回新的链表 eg: 1,2,3,4,5--->5,4,3,2,1 //反转链表 struct ListNode* reverseList(struct ListNode* head) {//定义三个变量struct ListNode* n1, * n2, * n3;n1 NULL;n2 head;n3 head->n…