随笔分类 - C# 数据结构与算法
摘要:概览 概念 折半查找,又称“二分查找”,仅适用于有序的顺序表。可以用跳表来实现有序的链表的二分查找的功能 查找效率 圆形:节点 矩形:null 判定树 二分查找的判定树是平衡二叉树 二分查找过程可用二叉树来描述:把当前查找区间的中间位置上的结点作为根,左子表和右子表中的结点分别作为根的左子树和右子树
阅读全文
摘要:概览 查找算法相关的概念 查找定义:根据给定的某个值,在查找表中确定一个其关键字等于给定值的数据元素(或记录)。 查找算法分类: 1)静态查找和动态查找; 注:静态或者动态都是针对查找表而言的。动态表指查找表中有删除和插入操作的表。 2)无序查找和有序查找。 无序查找:被查找数列有序无序均可; 有序
阅读全文
摘要:概览 顺序查找 顺序查找的定义为:在一个已知无序(或有序)的队列中找出与给定的关键字相同的数的具体位置。 其原理是让关键字与队列中的数从开始一个一个地往后逐个比较,直到找到与给定的关键字相同的数。 当然,顺序查找绝不仅限于对数字、字符的查找,也适用于前缀、对象信息的关键信息的匹配等。 顺序查找算法的
阅读全文
摘要:概览 概念 最小生成树是一副连通加权无向图中一棵权值最小的生成树。 在一给定的无向图 G = (V, E) 中,(u, v) 代表连接顶点 u 与顶点 v 的边(即 ( u , v ) ∈ E {\displaystyle (u,v)\in E} ),而 w(u, v) 代表此边的权重,若存在 T
阅读全文
摘要:概览 图(Graph)涉及到的概念 连通图 无向图中,如果任意两个顶点之间都能够连通,则称此无向图为连通图。例如,图 2 中的无向图就是一个连通图,因为此图中任意两顶点之间都是连通的。 连通分量 若无向图不是连通图,但图中存储某个子图符合连通图的性质,则称该子图为连通分量。如图 3 所示,虽然图 3
阅读全文
摘要:视频地址6.5图的基本操作 - YouTube 基本操作概览 由于考研不考XX,所以重点介绍邻接表和邻接表 此外,还有图的遍历算法,包括深度优先遍历和广度优先遍历。 Adjacent(G,x,y):判断图G是否存在边<x, y>或(x, y)。 Neighbors(G,x):列出图G中与结点x邻接的
阅读全文
摘要:视频地址6.4十字链表、邻接多重表 - YouTube 概览 十字链表用于有向图 结构设计 顶点和边节点的设计如下: 空间复杂度 o(IVI+IEI) 如何找到指定顶点的所有出边?――顺着绿色线路找 如何找到指定顶点的所有入边?―一顺着橙色线路找 邻接多重表存储无向图 优点:方便删除边,删除一次就可
阅读全文
摘要:使用图结构表示的数据元素之间虽然具有“多对多”的关系,但是同样可以采用顺序存储,也就是使用数组有效地存储图。 使用数组存储图时,需要使用两个数组,一个数组存放图中顶点本身的数据(一维数组),另外一个数组用于存储各顶点之间的关系(二维数组)。 存储图中各顶点本身数据,使用一维数组就足够了;存储顶点之间
阅读全文
摘要:视频地址6.3邻接表法 - YouTube 概览 图的邻接表存储法详解 图的顺序存储结构 图的十字链表存储法 通常,图更多的是采用链表存储,具体的存储方法有 3 种,分别是邻接表、邻接多重表和十字链表。 本节先讲解图的邻接表存储法。邻接表既适用于存储无向图,也适用于存储有向图。 在具体讲解邻接表存储
阅读全文
摘要:多路查找树的背景 数组、堆、栈,链表、队列、二叉树,它们适用于较小的文件,是应用在内存中的数据结构。而对于较大的、存放在外存储器上的文件就不合适了,对于此类大规模的文件,即使是采用了平衡二叉树,在查找效率上仍然较低。 如果要操作的数据集非常大,大到内存已经没办法处理了,这种情况下,对数据的处理需要不
阅读全文
摘要:阅读本章需要知识储备 二叉查找树 多路查找树 B树 B+树的背景 由于B树非终端节点存储了除了关键字,还存储了数据库的指针,所以导致b树的效率高。所以为了改进效率,就讲让非终端节点只存储关键字,于是就有了B+树。 B+树 视频地址7.7B+树 - YouTube B+ 树是一种树数据结构,通常用于数
阅读全文
摘要:概览 一、引言 散列表(Hash Table),哈希表是一种组合的数据结构,特点是:数据元素的关键字与其存储地址直接相关,它通常的实现方式是数组加链表,或者数组加红黑树。哈希表是一种牺牲空间去换取时间的数据结构,需要在空间与时间上有取舍,哈希表是时间和空间之间的平衡。哈希表的核心是哈希函数,哈希表最
阅读全文
摘要:视频地址:7.5B树 - YouTube 阅读本章需要知识储备 二叉查找树 多路查找树 B树诞生背景 由于多差查找树会导致不平衡,让查找效率不搞,因此就设置一套平衡机制来提高多叉树的查找效率,这就有了B树。B树是二叉搜索树的扩展。用空间复杂度换取时间复杂度。二叉搜索树是在内存中内存空间有限,而cpu
阅读全文
摘要:视频地址:2022考研计算机王道数据结构考点冲刺00 红黑树的定义和性质【新考点】 - YouTube 需要的知识储备 1、2-3-4树中翻转的概念 2、平衡二叉树中旋转的概念,请点击阅读平衡二叉树 3、二叉搜索树的概念,请点击阅读二叉搜索树 辅助理解的工具网站:Red/Black Tree 红黑树
阅读全文
摘要:哈夫曼树 定义 在含有n个带权叶结点的二叉树中,其中带权路径长度(WPL)最小的二叉树称为哈夫曼树,也称最优二叉树 构造哈夫曼树 给定n个权值分别为w1, w2..., wn的结点,构造哈夫曼树的算法描述如下:1)将这n个结点分别作为n棵仅含一个结点的二叉树,构成森林F。2)构造一个新结点,从F中选
阅读全文
摘要:平衡二叉树 AVL树可视化工具 AVL树可视化工具(旧金山大学 (usfca)|数据结构可视化工具) 自定义泛型平衡二叉树源码:https://files.cnblogs.com/files/blogs/700042/avlTreeT.rar?t=1654089460 一、平衡二叉树定义 平衡二叉树
阅读全文
摘要:定义 二叉查找树(BST:Binary Search Tree),也称为二叉查找树、有序二叉树(ordered binary tree)或排序二叉树(sorted binary tree),是指一棵空树或者具有下列性质的二叉树: 若任意节点的左子树不空,则左子树上所有节点的值均小于它的根节点的值;
阅读全文
摘要:树的先序遍历(深度优先) 1)和二叉树的先序遍历一样。 2)转化成二叉树,然后执行二叉树先序遍历 树的后序遍历(深度优先) 2)后根遍历。若树非空,先依次对每棵子树进行后根遍历,最后再访问根结点。 树的层次遍历(广度优先) 和二叉树一样 森林的先序遍历 (深度优先) 1)等同于一次对每颗子树进行先序
阅读全文