【数据结构期末例题】
前言
本文是博主自己在准备学校数据结构考试时的总结,各个知识点都贴有对应的详细讲解文章以供大家参考;当然文中还有许许多多的截图,这些是博主对主要内容的摘取,对于那些基础较好的同学可以直接看截图,减少跳转对应文章浏览全文的时间,感谢本文引用文章的各位大佬,希望可以让更多同学看到这些优质文章并且得以受益。
1.KMP算法
求next数组(存储的是序号):
- 对数据进行编号,从1开始;
- 前两个必定为 0,1;
- 往后字符:找它的前一个和前一个的next数组对应序号的字符进行比较;
- 若不相同,则继续找前一个的next所对应的next,若相等,则所需位的next为当前比较字符的next值加1;
- 若果到第一个都没有匹配,则next为1。
本部分截图来源:讲解例题
2.二叉树
堆
知识点参考文章:堆与二叉树
二叉排序树/二叉搜索树/二叉查找树
AVL树
自平衡二叉查找树
补充:二叉线索树
任然采用左右孩子的存储形式,
当该节点的左孩子为空时可以指向它的前驱节点,
当该节点的右孩子为空时可以指向它的后继节点。
二叉线索树根据遍历顺序的不同会有所改变。
二叉树和森林的转换
3.折半查找
判定树:查找数据的路程图。
4.哈夫曼树
举个栗子:
5. 排序
一轮希尔排序:eg:步长为4的时候进行一次完整的插入排序,而非只进行一轮插入排序。
6.哈希表
重点知识:哈希冲突 和 平均查找时间
哈希冲突
哈希冲突优质文章:解决哈希冲突的四种方法
截图来源:数据结构 哈希表
平均查找时间
如果查找每个元素的概率相同,则查找各个元素的平均查找时间(或者平均查找次数)
举例:链地址法:
各个节点在对应链表上的位置的累加和。
7.广义表
表头、表尾
截图来源文章:广义表的表头和表尾是什么?
长度、深度
长度:包含数据元素(原子或子表)个数;
深度:最多嵌套括号层数。
截图来源文章:广义表的广度(长度)和深度的计算
8.图
图中顶点与边的关系
上方截图来自:图中结点、边和度之间的关系总结
顶点的度
无向图:顶点的度为顶点具有边的条数;
有向图:分为入度和出度,有向图顶点的度为入度和出度之和。
其实都是顶点具有边的条数。
连通与强连通
连通讲的是:无向图
强连通讲的是:有向图
截图来源:强连通分量
关键路径
关键路径:从源点到终点的最长路径。
优质文章:数据结构 – 关键路径详解
9.邻接矩阵与邻接表
邻接矩阵
对于图 G=(V, E) 而言,其中 V 表示顶点集合,E 表示边集合。
- 申请一个大小为O(n^2)的二维数组,来存放节点之间的连通关系以及权值(不需要存放权值的直接使用bool值表示);
- 无向图的邻接矩阵是关于主对角线对称的,因此可以只存储一半关系来节省空间;
行表示该节点的出度,
列表示该节点的入度。
邻接表
使用邻接表需要申请[V]个列表
- 每个列表存储所有从顶点出发的所以相邻顶点,列表总存储顶点数为[E];
- 无向图的列表总存储顶点数为2*[E]。
两者的比较
根据邻接表和邻接矩阵的结构特性可知,当图为稀疏图、顶点较多,即图结构比较大时,更适宜选择邻接表作为存储结构。当图为稠密图、顶点较少时,或者不需要记录图中边的权值时,使用邻接矩阵作为存储结构较为合适。
深度优先遍历 和 广度优先遍历
遍历方法:
例题
最小生成树
最小生成树概念:带权值的图中,连接所有顶点后花费最小的生成树。
注意:不同算法得到的最小生成树可能相同也可能不同。
优质文章:数据结构–最小生成树详解
10.拓扑排序
在图论中,拓扑排序(Topological Sorting)是一个有向无环图(DAG, Directed Acyclic Graph)的所有顶点的线性序列。且该序列必须满足下面两个条件:
- 每个顶点出现且只出现一次。
- 若存在一条从顶点 A 到顶点 B 的路径,那么在序列中顶点 A 出现在顶点 B 的前面。
注意:只有有向无环图才有拓扑排序。
细碎知识点补充
相关文章:
【数据结构期末例题】
前言 本文是博主自己在准备学校数据结构考试时的总结,各个知识点都贴有对应的详细讲解文章以供大家参考;当然文中还有许许多多的截图,这些是博主对主要内容的摘取,对于那些基础较好的同学可以直接看截图,减少跳转对应文…...
管理物理和快照备数据库(Physical and Snapshot Standby Databases)
1.打开物理备数据库 物理备数据库可以打开做只读访问,用于从主数据库卸载查询负载。 如果已经购买Oracle Active Data Guard选项的授权,当数据库打开时Redo Apply可以是激活的,因此允许查询返回与从主数据库返回的完全相同的结果…...
双目立体视觉:SAD算法
算法原理SAD(Sum of absolute differences)是一种图像匹配算法。基本思想:差的绝对值之和。此算法常用于图像块匹配,将每个像素对应数值之差的绝对值求和,据此评估两个图像块的相似度。该算法快速、但并不精确,通常用于多级处理的…...
海外问卷调查答题技巧,纯干货分享,新手小白看过来
海外问卷调查为什么别人赚得盆满钵满而我却连通过都不行?是不是经常有人发出这种疑问,东哥作为一个结交过很多做问卷调查行业的跨境人士,也了解到很多做这一行的去答题的时候都是掌握一定技巧的,而不是去乱答。今天东哥就来说说国…...
【NGINX入门指北】Nginx Web 架构实验
Nginx Web 架构实验 文章目录Nginx Web 架构实验一、动态网站结构二、LNMP 动态网站环境部署三、fastcgi & php-fpm:四、php-fpm初始化配置五、Nginx Location、六、Nginx Rewrite七、CA&HTTPS八、Nginx 的平滑升级一、动态网站结构 资源 资源文件识别——…...
rtt-nano移植
nano其他功能移植 添加finsh组件打开宏实现rt_hw_console_getchar函数添加finsh组件到工程总结问题1. 移植到stm32G0过程中出现Undefined symbol rt_hw_interrupt_disable (referred from clock.o)??2. “implict declaration of function ‘ ‘ is invalid in c99??3. 关于…...
cnn+transformer
好的,下面是使用 Transformer 加 CNN 实现语义分割的代码,使用的数据集是 Semantic Segmentation Drone Dataset。 首先,我们需要导入必要的 Python 库和模块。我们将使用 PyTorch 深度学习框架来实现模型: #python import torch import torch.nn as nn import torch.nn.fu…...
Python fileinput模块:逐行读取多个文件
前面章节中,我们学会了使用 open() 和 read()(或者 readline()、readlines() )组合,来读取单个文件中的数据。但在某些场景中,可能需要读取多个文件的数据,这种情况下,再使用这个组合࿰…...
Vue3路由传参
vue3路由和vue2差别不是很大,不过在传参形式上略有改变 在Vue3中使用路由必须引入 useRouter 和 useRoute import { useRoute, useRouter } from vue-routerconst Router useRouter() //跳转const Route useRoute() //获取到值 同Vue2一样,query使用p…...
用户管理——认证功能JWT和Session
目录用户认证功能的技术选型JWT和Session的区别基于JWT和Session的认证流程基于JWT的认证流程基于Session的认证流程基于JWT和Session的认证的优缺点基于JWT和Session的认证的安全性基于JWT和Session的认证的性能分析基于JWT的一次性和无法废弃基于JWT和Session的认证的续签选择…...
hashlib — 加密哈希算法
hashlib — 加密哈希算法 1.概述 加密可以保护消息的安全,以便验证它们的准确性并且使它们受保护不被拦截。 Python 的加密方式支持包括利用像 MD5 和 SHA 这样的标准算法对消息内容产生签名的 hashlib 和验证消息没有在传输过程中被改变的 hmac hashlib 哈希库模…...
四喜临门选股预警源码指标
{四喜临门选股预警} AP1:CROSS(MA(C,5),MA(C,10)); RSV:(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100; K:SMA(RSV,3,1); D:SMA(K,3,1); AP2:CROSS(K,D); DIFF:EMA(CLOSE,12) - EMA(CLOSE,26); DEA:EMA(DIFF,9); AP3:CROSS(DIFF,DEA); AP4:CROSS(MA(V,5),MA(V,10)); GYTJ1:…...
Kotlin新手教程五(扩展)
一、扩展 在Kotlin中可以给一个类添加一个新的方法而不用继承该类或者使用设计模式,这样的方法称为扩展。 1.扩展函数 声明一个扩展函数,我们需要用一个 接收者类型 也就是被扩展的类型来作为他的前缀。 下面代码为 MutableList 添加一个swap 函数&am…...
QT入门Containers之Widget、Frame
目录 一、QWidget界面相关 1、布局介绍 2、基本界面属性 3、特殊属性 二、QFrame 三、Demo展示 此文为作者原创,创作不易,转载请标明出处! 一、QWidget界面相关 1、布局介绍 为什么将QWidget容器放在第一个,因为目前使用过…...
数据结构与算法基础-学习-12-线性表之顺序队
一、个人理解队列是线性表的衍生之一,具有先进先出的特性,在队尾进行插入操作,在队头进行删除操作。队列的存储结构分为两个大类,一种是顺序队,就是用数组实现。另一种就是链队,使用链表实现。顺序队存在真…...
Python 字典(Dictionary)小窍门
字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值 key:value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示:d {key1 : value1, key2 : value2 }注意:dict …...
知识图谱构建技术综述
摘要 *知识图谱为实现语义化智能搜索以及知识互联打下了基础,。, *随着知识的发展,传统的基于模板和规则构建的知识图谱已经被深度学习所替代。 知识组织得原则中:知识的充分性、有序性和标准化规则。深度学习的效果在很大程度上…...
环境变量和进程地址空间
目录 环境变量: env:显示所有的环境变量: echo $环境变量名表示查看环境变量的值 理解环境变量: getenv:显示环境变量的值 export set命令:显示所有变量 unset取消变量: pwd:当…...
【数据结构】栈和队列
目录 一、栈 1、栈的定义 2、栈的模拟实现(顺序栈) 1、创建一个顺序结构的栈 2、实现压栈方法(push) 3、模拟实现pop方法(出栈) 4、模拟实现peek(查看) 5、测试上述方法 3、栈的应用场景 1、改变元…...
sql复习(视图、Top-N分析、其他数据库对象)
一、视图view 1.视图定义 视图是一种虚表。 视图建立在已有表的基础上, 视图赖以建立的这些表称为基表。 向视图提供数据内容的语句为 SELECT 语句, 可以将视图理解为存储起来的 SELECT 语句。 视图向用户提供基表数据的另一种表现形式。 2.使用视图的好处 控制数据访问 简…...
【限时技术红利】C# 14原生AOT + Dify客户端 = 独立单文件.exe部署,告别运行时依赖——但仅适用于.NET 9 Preview 5+
第一章:C# 14原生AOT部署Dify客户端的演进背景与技术定位近年来,AI服务客户端对启动性能、内存占用和分发体积提出更高要求。Dify作为开源LLM应用编排平台,其官方SDK长期依赖.NET运行时动态加载与JIT编译机制,在边缘设备、Serverl…...
JS逆向实战:Hook技术对抗与绕过无限Debugger的防御策略
1. 无限Debugger的常见类型与原理剖析 第一次遇到无限Debugger时,我正试图抓取某电商网站的价格数据。刚打开开发者工具,页面就像卡死的音乐盒一样不断弹出调试窗口,鼠标根本来不及点"继续执行"。这种防御机制看似无解,…...
别再为.NET 3.5报错头疼了!Win10/LTSC系统离线安装最全避坑指南
Win10/LTSC系统.NET 3.5离线安装终极避坑手册:从错误码解析到镜像精准匹配 当你面对那个熟悉的灰色弹窗——"无法安装.NET Framework 3.5",而手头的工作软件正急待这个运行环境时,这种挫败感我深有体会。作为经历过数十次不同场景下…...
从YouTube视频到姿态估计:MPII数据集背后的数据清洗与标注实战避坑指南
从YouTube视频到姿态估计:MPII数据集构建全流程实战解析 当我们需要训练一个能够精准识别人体姿态的AI模型时,高质量的数据集就是一切的基础。MPII Human Pose Database作为计算机视觉领域的标杆数据集,其构建过程远比我们想象中复杂——从Yo…...
Nano-Banana Studio实战案例:输入‘Backpack‘生成极简纯白风平铺拆解图
Nano-Banana Studio实战案例:输入Backpack生成极简纯白风平铺拆解图 1. 案例背景与工具介绍 今天我要分享一个特别实用的AI设计工具实战案例——使用Nano-Banana Studio一键生成背包的极简纯白风格平铺拆解图。 Nano-Banana Studio是一个基于Stable Diffusion XL…...
ARM地址转换与分支记录缓冲区(BRB)机制详解
1. ARM地址转换机制深度解析在ARMv8/ARMv9架构中,地址转换是内存管理单元(MMU)的核心功能,它通过多级页表将虚拟地址(VA)转换为物理地址(PA)。这种转换机制不仅实现了内存隔离和保护,还为虚拟化提供了硬件支持。我们先从最基础的地址转换指令…...
VSCode护眼主题终极指南:如何完美复刻Eclipse绿色背景(附详细配置代码)
VSCode护眼主题终极指南:如何完美复刻Eclipse绿色背景(附详细配置代码) 作为一名长期与代码打交道的开发者,眼睛的健康问题不容忽视。许多从Eclipse转向VSCode的用户都会怀念那个经典的绿色背景——它不仅代表着一种习惯ÿ…...
MyBatis RowBounds分页踩坑实录:一次线上OOM事故教会我的事
MyBatis分页陷阱:从RowBounds内存泄漏到高效分页实战 凌晨三点,手机突然响起刺耳的报警声。打开监控系统一看,某核心服务的堆内存曲线像坐了火箭一样直线上升,最终触发了OOM崩溃。经过彻夜排查,罪魁祸首竟是项目中一段…...
KH Coder:无需编程的终极文本挖掘与内容分析完整指南
KH Coder:无需编程的终极文本挖掘与内容分析完整指南 【免费下载链接】khcoder KH Coder: for Quantitative Content Analysis or Text Mining 项目地址: https://gitcode.com/gh_mirrors/kh/khcoder 面对海量文本数据却无从下手?无论是学术研究中…...
R 4.5并行计算提速仅1.8×?你漏掉了最关键的——自动向量化预编译(AVX-512适配+RcppParallel动态绑定配置)
第一章:R 4.5并行计算性能瓶颈的根源诊断R 4.5 引入了对 parallel 包的底层优化,但实际应用中常出现“多核未提速”甚至“并行反降速”的现象。其根本原因并非简单归咎于硬件或任务粒度,而在于 R 运行时的内存模型、序列化开销与工作进程启动…...




































