
数据结构
华山拎壶冲
不积跬步,无以至千里。。。
面试必备:https://www.jianshu.com/u/c3be0f69940b
展开
-
二叉树、红黑树、B&B+树超齐全,快速搞定数据结构
前言没有必要过度关注本文中二叉树的增删改导致的结构改变,规则操作什么的了解一下就好,看不下去就跳过,本文过多的XX树操作图片纯粹是为了作为规则记录,该文章主要目的是增强下个人对各种常用XX树的设计及缘由的了解,也从中了解到常用的实现案例使用XX树实现的原因。数据在计算机中的存储结构主要为顺序存储结构、链式存储结构、索引存储结构、散列存储结构,其中链式存储结构最常见的示例是链表与树,链式存储结构主要有以下特点:优点:逻辑相邻的节点物理上不必相邻,插入、删除灵活,只需改变节点中的指针指向 缺点:存转载 2020-09-15 11:29:29 · 633 阅读 · 0 评论 -
拜托,别再问我什么是堆了!
前言堆是生产中非常重要也很实用的一种数据结构,也是面试中比如求 Top K 等问题的非常热门的考点,本文旨在全面介绍堆的基本操作与其在生产中的主要应用,相信大家看了肯定收获满满!本文将会从以下几个方面来讲述堆:生产中的常见问题 堆的定义 堆的基本操作 堆排序 堆在生产中应用生产中的常见问题我们在生产中经常碰到以下常见的问题:优先级队列的应用场景很广,它是如何实现的呢 如何求 Top K 问题 TP99 是生产中的一个非常重要的指标,如何快速计算可能你已经猜到了,以上生产上的高转载 2020-09-01 14:35:56 · 198 阅读 · 0 评论 -
图文详解 DFS 和 BFS
前言深度优先遍历(Depth First Search, 简称 DFS) 与广度优先遍历(Breath First Search)是图论中两种非常重要的算法,生产上广泛用于拓扑排序,寻路(走迷宫),搜索引擎,爬虫等,也频繁出现在 leetcode,高频面试题中。本文将会从以下几个方面来讲述深度优先遍历,广度优先遍历,相信大家看了肯定会有收获。深度优先遍历,广度优先遍历简介 习题演练 DFS,BFS 在搜索引擎中的应用深度优先遍历,广度优先遍历简介深度优先遍历深度优先遍历主要思路是从转载 2020-08-31 15:48:42 · 2568 阅读 · 0 评论 -
面试问你红黑树,你都懂了吗
红黑树(Red Black Tree)是一种自平衡的二叉搜索树(Self-balancing Binary Search Tree)。以前也叫做平衡二叉 B 树(Symmetric Binary B-tree)。预备知识树的知识框架结构如下图所示:image平衡二叉搜索树平衡二叉搜索树(Balanced Binary Search Tree),英文简称 BBST。经典常见的平衡二叉搜索树是 AVL 树和红黑树。①二叉搜索树二叉搜索树(Binary Search T..转载 2020-08-27 17:34:28 · 440 阅读 · 0 评论 -
五分钟看懂一道中等难度的算法题
今天分享的题目来源于 LeetCode 第 450 号问题:删除二叉搜索树中的节点。虽然它的难度是 中等,但实际上很好理解,请往下看!题目描述给定一个二叉搜索树的根节点 root 和一个值 key,删除二叉搜索树中的 key 对应的节点,并保证二叉搜索树的性质不变。返回二叉搜索树(有可能被更新)的根节点的引用。一般来说,删除节点可分为两个步骤: 首先找到需要删除的节点; 如果找到了,删除它。 说明:要求算法时间复杂度为 O(h),h 为树的高度。示例:root.转载 2020-06-24 15:40:37 · 619 阅读 · 0 评论 -
典型数据结构解析:B树,B+树,B*树
本文旨在总结个人所学以加深印象,其中表述及内容大量引用了July的博文:从B 树、B+ 树、B* 树谈到R 树背景介绍:动态查找树主要有:二叉查找树(Binary Search Tree),平衡二叉查找树(Balanced Binary Search Tree),红黑树(Red-Black Tree ),B-tree/B+tree(B~Tree)。前三者是典型的二叉查找树结构,其查找的时间复杂度O...原创 2018-06-30 18:46:23 · 455 阅读 · 0 评论 -
典型数据结构解析:二叉查找树,红黑树
背景介绍 我们使用符号表这个词来描述一张抽象的表格,我们会将信息(值)存储在其中,然后按照指定的键来搜索并获取这些信息。键和值的具体意义取决于不同的应用。符号表中可能会保存很多键和很多信息,因此实现一张高效的符号表也是一项很有挑战性的任务。我们会用三种经典的数据类型来实现高效的符号表:二叉查找数、红黑树、散列表。 二分查找思想使用有序数组存储键,经典的二分查找能够根据...原创 2018-07-03 20:39:33 · 335 阅读 · 1 评论 -
二叉树遍历(前序、中序、后序、层次遍历、深度优先、广度优先)
二叉树是一种非常重要的数据结构,很多其它数据结构都是基于二叉树的基础演变而来的。对于二叉树,有深度遍历和广度遍历,深度遍历有前序、中序以及后序三种遍历方法,广度遍历即我们平常所说的层次遍历。因为树的定义本身就是递归定义,因此采用递归的方法去实现树的三种遍历不仅容易理解而且代码很简洁,而对于广度遍历来说,需要其他数据结构的支撑,比如堆了。所以,对于一段代码来说,可读性有时候要比代码本身的效率要重要的...转载 2019-09-29 16:23:38 · 1111 阅读 · 0 评论