二叉树的遍历是指从根结点出发,按照某种次序依次访问二叉树中所有结点,使得每个结点被访问一次且仅被访问一次。 在二叉树的遍历中存在三种较为常用的遍历方式:前序遍历、中序遍历、后序遍历。接下来我将尝试着用三组动画向读者详细的…
「算法与数据结构」从入门到进阶吐血整理推荐书单
推荐一下「算法与数据结构」从入门到进阶的书单。 一.入门系列 这些书籍通过图片、打比方等通俗易懂的方法来讲述,让你能达到懂一些基础算法,线性表,堆栈,队列,树,图,DP算法,背包问题等,不要求会实现,但是看过以下这些书对…
在数据结构中穿针引线:链表(一)
在计算机领域离不开算法和数据结构,而在数据结构中我们往往需要一些灵巧的结构去处理一些繁杂的数据,链表 就是这样一种能穿针引线般的帮助我们去解决这种问题的数据结构。 它可以辅助组成其他数据结构比如 队列 。 后续的比如二分…
看动画理解「链表」实现LRU缓存淘汰算法
前几节学习了「链表」、「时间与空间复杂度」的概念,本节将结合「循环链表」、「双向链表」与 「用空间换时间的设计思想」来设计一个很有意思的缓存淘汰策略:LRU缓存淘汰算法。 三种最常见的链表结构 循环链表的概念 如上图所示…
21天,在Github上获取 6300 star
大家好,我是程序员小吴。12月初我在GitHub上上传了一个仓库,到现在为止获取了 6300 star,下面和大家聊聊关于项目启动的初衷、面临的一些困难和未来的计划。 「LeetcodeAnimation」的萌芽? 在刷…
在Object-C中学习数据结构与算法之排序算法
笔者在学习数据结构与算法时,尝试着将排序算法以动画的形式呈现出来更加方便理解记忆,本文配合Demo 在Object-C中学习数据结构与算法之排序算法阅读更佳。 目录 选择排序 冒泡排序 插入排序 快速排序 双路快速排序 …
LeetCode 上最难的链表算法题,没有之一!
题目来源于 LeetCode 第 23 号问题:合并 K 个排序链表。 该题在 LeetCode 官网上有关于链表的问题中标注为最难的一道题目:难度为 Hard ,通过率在链表 Hard 级别目前最低。 题目描述 合并 …
啥是佩奇排名算法
佩奇排名介绍 佩奇排名是根据页面之间的链接结构计算页面的值的一种算法。下面我们通过动画来理解进行计算的具体流程。 假设一个正方形表示一个 WEB 页面,一个箭头表示一个页面之间的链接。 此图表明下面 3 页包含指向上面 …
十大经典排序算法动画与解析,看我就够了!(配代码完全版)
GitHub Repo:Sort Article Follow: MisterBooo · GitHub 排序算法是《数据结构与算法》中最基本的算法之一。 排序算法可以分为内部排序和外部排序。 内部排序是数据记录在内存中…
几道和「二叉树」有关的算法面试题
1. 二叉树的前序遍历 题目来源于 LeetCode 第 144 号问题:二叉树的前序遍历。 题目描述 给定一个二叉树,返回它的 前序 遍历。 题目解析 用栈(Stack)的思路来处理问题。 前序遍历的顺序为根-左-右,…
准备下次编程面试前你应该知道的数据结构
国外 IT 教育学院 Educative.io 创始人 Fahim ul Haq 写过一篇过万赞的文章《The top data structures you should know for your next codi…
30 个跟程序猿有关的成语
猿来如此 指程序员通过调试终于找到 bug 所在。 功成猿满 指项目大获成功,老板开始觉得程序猿人数太多,工作不够饱和。 左右逢猿 指需求评审会时,前后左右都是程序猿,舌战群猿,以一敌多的场面。 花好约猿 指花儿开得正好…