平衡二叉排序树

在上一节当中,我们介绍了 二叉排序树 以及它的查找和删除等操作,但是它其实是存在一定问题的,至于到底是什么问题,下面我们慢慢来看

二叉排序树

我们在上一章的 查找算法 当中介绍了算法的分类和一些比较常用的算法,比如二分,插值等等,但是它们的使用都需要一个前提条件,那就是『元素必须是有序的』,那么如果对于无序列表,我们又需要怎么来进行处理呢?这也就是我们今天将要介绍到的『二叉排序树』

查找算法

在本章当中,我们将会介绍一类在平常开发过程当中经常会使用的算法,那就是查找算法,关于查找算法肯定不需要多说,都是耳熟能详的,什么顺序、二分之类的就算是没有用过应该也听闻过,那么今天我们就来简单的总结整理一下查找算法的分类和一些比较常用的算法

关键路径

在上一章当中我们研究了 最短路径 的相关算法,它们是迪杰斯特拉算法(Dijkstra)和弗洛伊德算法(Floyd),本章我们就来了解一下关键路径的一些相关算法,这也是图结构相关内容的最后一部分,但是在展开之前,我们需要先来了解一些前置知识,它们就是『拓扑序列』和『拓扑排序』

最短路径

在之前的 普里姆算法和克鲁斯卡尔算法(最小生成树算法) 章节当中我们曾提到过,介绍这两个算法是为了我们接下来将要介绍的最短路径和关键路径做一些铺垫,那么今天我们就来正式的来了解一下什么是最短路径,以及它涉及到的两种算法『迪杰斯特拉算法(Dijkstra)』和『弗洛伊德算法(Floyd)』

普里姆算法和克鲁斯卡尔算法

本章我们来看两个关于图的算法,也算是为我们接下来将要介绍的 最短路径关键路径 做一些铺垫,它们分别是『普里姆算法』和『克鲁斯卡尔算法』,它们的目的都是生成『最小生成树』,它们两者的实现原理是比较相似的,只不过一个通过边,而另一个主要是通过顶点来实现的,下面我们就一个一个来进行介绍

图的遍历

在之前的章节当中,我们介绍了 图结构图的存储结构,所以可以得知 图的存储结构 主要有五种方式,有两种使用较多的『邻接矩阵』和『邻接表』,另外还有三种使用较少的『十字链表』,『邻接多重表』和『边集数组』,本章我们主要来看一下图的遍历

图的存储结构

在上一章当中,我们介绍了 图结构 的基本定义和一些相关概念,在图结构当中的定义概念十分之多,但是很多概念之间都是互相关联的,如果没有了解可以先行了解一下,在有了这些基础之上,本章我们就来看看图的存储结构

图结构

我们在之前的 单链表循环链表 等链表章节当中我们介绍了每个元素之间只有一个直接前驱和一个直接后继元素,同样的,在 二叉树 等章节当中介绍了在树这种结构中,数据元素之间是层次关系,并且每一层上的数据元素可能和下一层中多个元素相关,但只能和上一层中一个元素相关,但是以上这些仅仅都只是一对一,一对多的简单模型

那么如果元素之间存在多对多的关系呢,我们又该如何来处理呢,所以今天我们就来看看另外一种名为图的结构

树、森林与二叉树之间的转换

本章我们主要来看一下树、森林和二叉树之间的相互转换以及赫夫曼树的相关概念

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×