数据结构 | 查漏补缺之顺式存储和链式存储、如何评价哈希函数的好坏、链地址法、树的遍历、关键路径、完全图、连通图、迪杰斯特拉、b树

目录

顺式存储和链式存储

优缺点比较

顺序存储

​编辑 链式存储

如何评价哈希函数的好坏

简述哈希查找中链地址法解决冲突的方法 

树的遍历

 关键路径

完全图

连通图

迪杰斯特拉

b树

特点:

插入(索引不能大于:最大为 M-1 个) 

删除(注意索引值不能小于 Math.ceil(M/2)-1 )

情况1(叶子节点且没到最小索引值)

情况2(非叶子节点且破坏最小索引值) 

常见的时间复杂度 


顺式存储和链式存储

优缺点比较

数据结构之顺序存储与链式存储_顺序存储和链式存储-CSDN博客

顺序存储

 链式存储


如何评价哈希函数的好坏

 

简述哈希查找中链地址法解决冲突的方法 

链地址法(Chaining):将具有相同哈希地址的元素(或记录)存储在同一个线性链表中。

建立链表来解决hash冲突,将在同一位置产生hash冲突的元素链接起来组成链表,再将链表插入到hash表中的对应位置。这样一来当我们需要访问查找一个关键字对应的数据时,就需要先通过hash函数获得其索引位置,然后遍历该索引位置对应的链表,逐个节点对关键字key进行比较最终完成查找


树的遍历

先根遍历 --先序遍历

后根遍历--后序遍历


 关键路径

关键活动组成了关键路径,关键路径是图中的最长路径,关键路径长度代表整个工期的最短完成时间,关键活动延期完成,必将导致关键路径长度增加,即整个工期的最短完成时间增加,因此A正确。关键路径并不唯一,当有多条关键路径存在时,其中一条关键路径上的关键活动时间缩短,只能导致本条关键路径变成非关键路径,而无法缩短整个工期,因为其他关键路径没有变化,因此B项不正确。对于A,B两项要搞懂的是,任何一条关键路径上的关键活动变长了,都会使这条关键路径变成更长的关键路径,并且导致其他关键路径变成非关键路径(如果关键路径不唯一),因此整个工期延长。而某些关键活动缩短则不一定缩短整个工期。


 

完全图

 每两个顶点之间都有边

连通图

 N 个顶点的连通图用邻接矩阵表示时,该矩阵至少有2(n-1)个非零元素。

这里肯定是无向图,无向图的邻接矩阵是对称的,所以是边数的两倍

连通图:无向图中,任意两个顶点是连通的(一个顶点不必与另一个顶点直接相连,可以通过其它顶点到达即可最少有n-1条边

 

 

迪杰斯特拉

 

b树

一棵M阶B树有以下特点。(最多有几个子节点就是当时阶)

特点:

1.   每个结点的值(索引) 都是按递增次序排列存放的,并遵循左小右大原则。

2.  根结点 的 子节点 个数为 [2,M]。

3. 除 根结点 以外的 非叶子结点 的子节点个数 [ Math.ceil(M/2),M]。 Math.ceil() 为向上取整。

4. 每个非叶子结点的值(索引)个数 = 子节点个数 -1最小为 Math.ceil(M/2)-1   最大为 M-1 个。

索引值是指框框里面有多少个数

5. B树的所有叶子结点都位于同一层。

下图是一个 3阶B树:

可以看到:

1. 除 根结点 外,所有  非叶子结点  都至少有 M/2 = 1.5 取整 = 2 个结点。

2. 每个 结点中 的索引值 都是从小到大排序的。

3. 所有叶子结点都在同一层中。

插入(索引不能大于:最大为 M-1 个) 

1.插入时,超过索引值就要分裂,中间是元素往上提(塞到父亲结点那里)旁边的元素分裂,各自形成两个小圈圈 (最大值为阶数-1)

2.父亲节点满了也往上塞

删除(注意索引值不能小于 Math.ceil(M/2)-1

情况1(叶子节点且没到最小索引值)

 

情况2(非叶子节点且破坏最小索引值) 

27  1.先找到后继代替他

       2.找到子节点(索引值最多)的索引值中最大数移到  28的位置,将28移到以前的位置(少了索引值)。

 

情况3(兄弟也没有多的,找父亲借)

 

B树和B+树_b+树的叶子结点本身是按照什么排序-CSDN博客


常见的时间复杂度 

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

TrustGeo代码理解(六)utils.py

代码链接:https://github.com/ICDM-UESTC/TrustGeo 一、导入常用库和模块 from __future__ import print_function from distutils.version import LooseVersion from matplotlib.scale import LogisticTransform import numpy as np import torch import warnings import t…

测序名词解释

测序深度(Sequencing Depth)是指:测序得到的碱基总量(bp)与基因组(转录组或测序目标区域大小)的比值,是评价测序量的指标之一。 测序深度的计算公式为: 测序深度 &…

Java数据结构-通过数组封装-结构分析

1、默认arrayList的数组未初始化&#xff0c;长度为0&#xff0c;容量默认是10 ArrayList<Integer> arrayList new ArrayList<>();System.out.println(ClassLayout.parseInstance(arrayList).toPrintable()); java.util.ArrayList object internals: OFF SZ …

【论文极速读】LVM,视觉大模型的GPT时刻?

【论文极速读】LVM&#xff0c;视觉大模型的GPT时刻&#xff1f; FesianXu 20231210 at Baidu Search Team 前言 这一周&#xff0c;LVM在arxiv上刚挂出不久&#xff0c;就被众多自媒体宣传为『视觉大模型的GPT时刻』&#xff0c;笔者抱着强烈的好奇心&#xff0c;在繁忙工作之…

威联通硬盘休眠后修改系统定时任务

按照网上一些教程&#xff0c;成功将威联通的机械硬盘设置了自动休眠。但是发现每天有多个整点硬盘会自动唤醒&#xff0c;怀疑是系统内置的定时任务触发了硬盘唤醒。 通过查看系统日志中事件和访问记录&#xff0c;判断出一些引发硬盘唤醒的自动任务&#xff0c;将这些定时任…

学习使用echarts漏斗图的参数配置和应用场景

学习使用echarts漏斗图的参数配置和应用场景 前言什么是漏斗图漏斗图的特点及应用场景漏斗图的特点漏斗图常见的的应用场景&#xff1a; echarts中漏斗的常用属性echart漏斗代码美化漏斗图样式1、设置标题字体大小2、设置标签样式3、设置漏斗图为渐变颜色4、设置高亮效果5、设置…

自动化测试(终章)webdriver的常用api(2)以及新的开始

目录 多层框架/窗口定位 多层框架的定位 frame是什么&#xff1f; 多层窗口定位 层级定位 使用 XPath 进行层级定位&#xff1a; 使用 CSS 选择器进行层级定位&#xff1a; 下拉框处理 alert、confirm、prompt 的处理 Alert 弹窗&#xff1a; Confirm 弹窗&#xff…

vue3 elementplus左侧无限级菜单

使用的组件是 element Plus Menu 菜单 注意&#xff1a;Menu 菜单属性参数可以自己配置 链接: Menu 菜单 //父级页面 <el-container><el-aside width"320px"><el-menuopen"handleOpen"close"handleClose":default-active"…

openmediavault debian linux安装配置企业私有网盘(三 )——raid5与btrfs文件系统无损原数据扩容

一、适用环境 1、企业自有物理专业服务器&#xff0c;一些敏感数据不外流时&#xff0c;使用openmediavault自建NAS系统&#xff1b; 2、在虚拟化环境中自建NAS系统&#xff0c;用于内网办公&#xff0c;或出差外网办公时&#xff0c;企业内的文件共享&#xff1b; 3、虚拟化环…

jmeter,http cookie管理器

Http Cookie管理器自动实现Cookie关联的原理&#xff1a; (默认:作用域在同级别的组件) 一:当Jmeter第1次请求服务器的时候,如果说服务器有通过响应头的Set-Cookie有返回Cookie,那么Http Cookie管理器就会自动的保存这些Cookie的值。 二&#xff1a;当Jmeter第2-N次请求服务器的…

PyQt6 QSpacerItem弹簧控件

锋哥原创的PyQt6视频教程&#xff1a; 2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~共计46条视频&#xff0c;包括&#xff1a;2024版 PyQt6 Python桌面开发 视频教程(无废话版…

【报错栏】(vue)Module not found: Error: Can‘t resolve ‘element-ui‘ in xxx

Module not found: Error: Cant resolve element-ui in xxx 报错原因是&#xff1a; 未安装 element-ui 依赖 解决&#xff1a; npm install element-ui 运行

生物信息学分析领域领先的特制语言环境NGLess(Next Generation Less)介绍、安装配置和详细使用方法

介绍 NGLess&#xff08;Next Generation Less&#xff09;是一种用于生物信息学分析的领先的领域特定语言&#xff08;DSL&#xff09;。它旨在简化和加速NGS&#xff08;Next Generation Sequencing&#xff09;数据的分析过程。NGLess具有清晰的语法和功能&#xff0c;使用户…

带你学C语言~指针(1)

Hello,CSDN的各位家人们&#xff0c;你们好啊&#xff01;今天&#xff0c;小赵要给大家分享的C语言知识是指针&#xff0c;相信不少家人们都或多或少被指针搞得晕头转向&#xff0c;小赵一开始也是&#xff0c;但后来小赵经过不断地努力学习&#xff0c;终于将这里面的知识弄懂…

线程的介绍

首先我们来了解一下线程是什么&#xff1a; 首先我们介绍一下程序是什么&#xff1f;程序就是我们编写的代码就叫程序&#xff0c;当我们程序运行的时候则称为进程&#xff0c;在我们现实生活中哪些用到了进程&#xff0c;就比如说我们qq&#xff0c;微信&#xff0c;百度网盘…

Spring容器中scope为prototype类型Bean的回收机制

文章目录 一、背景二、AutowireCapableBeanFactory 方法 autowireBean 分析三、Spring 容器中 scope 为 prototype 类型 Bean 的回收机制四、总结 一、背景 最近做 DDD 实践时&#xff0c;遇到业务对象需要交给 Spring 管理才能做一些职责内事情。假设账号注册邮箱应用层代码流…

【注解和反射】-- 04 类加载器、运行时类的对象

反射 03 类的加载与ClassLoader 3.4 类加载器 类加载器的作用&#xff1a;将class文件字节码内容加载到内存中&#xff0c;并将这些静态数据转换成方法区的运行时数据结构&#xff0c;然后在堆中生成一个代表这个类的java.lang.Class对象&#xff0c;作为方法中类数据的访问…

Amortized Bootstrapping of LWE:使用 BFV 打包处理

参考文献&#xff1a; [AP13] Alperin-Sheriff J, Peikert C. Practical bootstrapping in quasilinear time[C]//Annual Cryptology Conference. Berlin, Heidelberg: Springer Berlin Heidelberg, 2013: 1-20.[MS18] Micciancio D, Sorrell J. Ring packing and amortized F…

Flask维护者:李辉

Flask维护者&#xff1a;李辉&#xff0c; 最近看b站的flask相关&#xff0c;发现了这个视频&#xff1a;[PyCon China 2023] 濒危 Flask 扩展拯救计划 - 李辉_哔哩哔哩_bilibili 李辉讲他在维护flask之余&#xff0c;开发了apiflask这个依托flask的框架。GitHub - apiflask/a…

02markdown-学习笔记

一级标题 二级标题 三级标题 四级标题 五级标题 六级标题 换行符<br>标签 写入一段测试用的正文第二段测试文本,如果要对文本进行换行可以使用<br>标签 文本修饰符 字体为斜体的修饰&#xff0c;一对星号包含 字符为粗体&#xff0c;两对星号包含 字体为…