### 前言
大家好,我是bigsai,好久不见,甚是想念!
今天带大家征服二叉树的前中后序遍历,包含递归和非递归方式,学到就是赚到!
很多时候我们需要使用非递归的方式实现二叉树的遍历,非递归枚举相比递归方式的难度要高出一些,效率一般会高一些,并且前中后序枚举的难度呈一个递增的形式,非递归方式的枚举有人停在非递归后序,有人停在非递归中序,有人停在非递归前序(这就有点拉胯了啊兄弟)。
我们
### 哈夫曼树介绍
hello,大家好,我是bigsai。
哈夫曼树、哈夫曼编码很多人可能听过,但是可能并没有认真学习了解,今天这篇就比较详细的讲一下哈夫曼树。
首先哈夫曼树是什么?
哈夫曼树的**定义**:给定N个权值作为N个叶子结点,构造一棵二叉树,**若该树的带权路径长度达到最小**,称这样的二叉树为**最优二叉树**,也称为哈夫曼树(Huffman Tree),哈夫曼树是带权
## 全排列、组合、子集及重复不重复终于彻底搞懂啦
### 前言
Hello,大家好,long time no see!在刷题和面试过程中,我们经常遇到一些排列组合类的问题,而全排列、组合、子集等问题更是非常经典问题。本篇文章就带你彻底搞懂全排列!
**求全排列?**
全排列即:n个元素取n个元素(所有元素)的所有**排列组合情况**。
**求组合?**
组合即:n个元素取m个元
### 前言
大家好,我是bigsai。
**拓扑排序**,很多人都可能**听说但是不了解**的一种算法。不知者大多会提出这样的疑问:
这是某种排序算法?这好像是一种图论算法?图也能排序?
非线性结构在传统意义上确实不太好排序,而拓扑排序它是对**有向图的顶点**排成一个线性序列。并且不一定唯一。
**什么是拓扑排序?**
>对一个有向无环图(Directed Acyclic Grap
## 跳表
### 前言
跳表是面试常问的一种数据结构,它在很多中间件和语言中得到应用,我们熟知的就有Redis跳表。并且在面试的很多场景可能会问到,偶尔还会让你手写试一试(跳表可能会让手写,红黑树是不可能的),这不,给大伙复原一个场景:
和宽度优先搜索(bfs)那肯定在其中,很多小老弟学会dfs和bfs就觉得好像懂算法了,无所不能,确实如此,学会dfs和bfs暴力搜索枚举确实利用计算机超强计算大部分都能求的一份解,学会dfs和bfs去暴力杯混分是一个非常不错的选择!
,当时讲的链表以但链表为主,但实际上在实际应用中双链表的应用多一些就比如LinkedList。
。

栈是这么定义的:
栈(stack)又名堆栈,它是一种**运算受限**的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地
### 前言
大家好,我是bigsai,之前有个小老弟问到一个剑指offer一道相关快速幂的题,这里梳理一下讲一下快速幂!
**快速幂是什么?**
顾名思义,快速幂就是快速算底数的n次幂。你可能疑问,求n次幂算n次叠乘不就行了?当n巨大无比时候,如果需要末尾有效尾数值等信息这个可能超出计算机运算范围。
**有多快?**
快速幂时间复杂度为 O(log₂n), 与朴素的O(n)相比
## 字典树 牛逼
### 什么是字典树
字典树,是一种**空间换时间**的数据结构,又称Trie树、前缀树,是一种树形结构(字典树是一种数据结构),典型用于统计、排序、和保存大量字符串。所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希树高。
![image-20210512184041023]