1算法 排序 选择排序 冒泡排序 希尔排序2数据结构 数组 集合 队列 栈 先进后出 堆 (堆是一种经过排序的树形数据结构) 完全二叉树 平衡二叉树 红黑树 3设计模式 工厂模式 单例模式 代理模式 策略模式 (我理解的只有这几个) 迭代器模式 (工作中没有具体使用 只有粗略的使用到) 工厂模式:工 ...
分类:
其他好文 时间:
2019-12-13 23:23:48
阅读次数:
116
打印树形结构初衷 树形结构是算法里很常见的一种数据结构,从二叉树到多叉树,还有很多变种。每当需要程序员自己手动实现树形结构时,因为结构本身的复杂性,不容易调试验证。但一般的调试对树形数据结构的整体把控十分有限,甚至会让人迷失在一大堆的调试信息海洋里。如果能够将数据树形打印出来,那么我们理解树形结构的 ...
分类:
其他好文 时间:
2019-11-21 10:05:19
阅读次数:
115
其实是数据结构。 智推连续几天给我推树状数组的模板,还放在第一位…… 对着蓝书的图看了好几天才看懂,树状数组的另外一个名字是二叉索引树,指通过把一个数组抽象的变形成树状的以求得到树形数据结构的效果。有人说是线段树的阉割版,我不太清楚,树状数组应该是不支持区间修改加速的。 首先我们需要理解lowbit ...
分类:
编程语言 时间:
2019-11-10 15:34:40
阅读次数:
64
分块入门 概述 分块是一种$O(N\sqrt{N})$的维护序列的数据结构,它比树形数据结构好写(方便书写和调试但代码不一定短)、复杂度也很接近(有时能卡过$O(N\log N)$的数据)、功能也更强大,常被视为一种“准暴力”的手段。 注意:我们通常将分块看作$O(N\sqrt{N})$的数据结构, ...
分类:
其他好文 时间:
2019-08-25 14:01:22
阅读次数:
73
贴代码: 如上代码在开发React项目, 用到内容。 需要注意的是, Gird 与Tree 结构转换是一个引用赋值。 也就是说改gird 或者treeData之后 值会影响变。 不需要的话,深拷贝之后再转。 浅拷贝的好处就是利用引用特性, 改treeData 值界面保存后去gridData 是可以的 ...
分类:
编程语言 时间:
2019-06-28 18:19:57
阅读次数:
207
今天要讲的是天才哈夫曼的哈夫曼编码,这是树形数据结构的一个典型应用。 !!!敲黑板!!!哈夫曼树的构建以及编码方式将是我们的学习重点。 老方式,代码+解释,手把手教你Python完成哈夫曼编码的全过程。、 首先,我先假设你已经有了二叉树的相关知识,主要就是概念和遍历方式这些点。如果没有这些知识储备, ...
分类:
编程语言 时间:
2019-06-24 22:43:25
阅读次数:
143
WPF下递归生成树形数据绑定到TreeView上 最终效果图:(用于学习类的效果 图片丑了点,看官莫怪) 新建窗体 然后在前端适当位置插入如下代码: <TreeView x:Name="departmentTree" Height="500" Width="500"> <TreeView.ItemT ...
二叉树是极为常见的数据结构,关于如何遍历其中元素的文章更是数不胜数。 然而大多数文章都是讲解的前序/中序/后序遍历,有关逐层打印元素的文章并不多,已有文章的讲解也较为晦涩读起来不得要领。本文将用形象的图片加上清晰的代码帮助你理解层序遍历的实现,同时我们使用现代c++提供的智能指针来简化树形数据结构的 ...
分类:
编程语言 时间:
2019-04-23 20:38:31
阅读次数:
190
线段树数据结构详解 这一部分是线段树。 线段树,顾名思义,是一种树形数据结构,适用于各种求区间统一算法的动静两平衡的数据结构。 这里什么是统一算法?~~(自己口胡的统一算法)~~ 比如求最大值or最小值、区间求和,一样的区间都是一样的算法,这也是和动态dp不同的地方。 前置知识1:二叉搜索树 二叉搜 ...
分类:
其他好文 时间:
2019-04-21 09:51:50
阅读次数:
128
字典树 (trie) 字典树,又名$trie$树,是一种用于实现字符串快速检索的树形数据结构。核心思想为利用若干字符串的公共前缀来节约储存空间以及实现快速检索。 $trie$树可以在$O((n+m) len)$解决形如这样的字符串检索问题: 给定$n$个字符串,再给定$m$个询问,每次询问某个字符串 ...
分类:
其他好文 时间:
2019-03-21 19:56:52
阅读次数:
164