二叉查找树(BST)与二叉平衡树(AVL)是两种树形数据结构,后者通过对前者的改良实现更优的时间复杂度,是经典的数据结构之一。<\br>本文分别介绍了两种二叉查找树和二叉平衡树的代码实现以及学习笔记供读者参考。
常用的 最短路 算法有三种:Floyd、Dijkstra、Bellman-Ford(SPFA),三种各有优劣。 Floyd 该算法可以计算任意两点之间的最短路径(全源最短路),算法实现简单,只需要三个for循环,但是时间复杂度高,适合数据量小的稠密图。 同时该算法可以计算负权图(不能有负环)。 该算法实现的本质是动态转移.我们使用邻接矩阵来存储更容…
图的存储是 图论 的基础内容,常用的方式有两种:邻接矩阵与邻接表,前者主要借助数组实现,后者可以采用vector或链式前向星实现。在大部分算法中常使用邻接表做存储。本文介绍了以上三种以及边缘列表等四种方式。
二叉树是一种基础数据结构,通常有两种方式实现:数组模拟或者二叉链表。本文将主要介绍二叉链表的实现方式,并简单介绍了它的几种常用的遍历方式。
KMP算法 ,快速模式匹配算法,是在暴力匹配的基础上进行的优化。给定两个串,我们要在主串里找到一个连续的字串和模式串匹配。该算法通过一个next数组进行优化,降低时间复杂度。不同的人对next的定义略有不同,但核心思想都是一样的,掌握KMP算法的思想尤为重要。