数据结构与算法
智达教育
本人于20年毕业于东大,在学校跟随导师做了多个项目,现在2B大厂工做后端开发,有多年工作经验,同时热爱技术,对前端、python、大数据等多个领域有研究,希望与大家共进步。
展开
-
栈和队列详细讲解
用户只能看到栈顶的数据 1、栈的应用 递归的类中 子函数的调用 记录中断的调用点(子调用) 2、栈的实现 以上的方法都是通过数组来实现的 数组的用户只能看到数组的最后一位也就是栈顶,栈中的其他的数据用户是看不到的,这就保证了栈的结构 public interface Stack<E> { int getSize();......原创 2019-06-29 17:46:53 · 72 阅读 · 0 评论 -
链表
目录 向头中插入元素 向节点的头插入数据: 向任意节点之间插入数据: 引入虚拟头节点 查看指定位置的元素 在指定位置修改元素 查看是否有某元素 toString 链表实现栈 链表实现队列 入队操作: 出队操作: (数组中,开辟的空间是连续的所以可以进行随机的访问(根据所给出的索引进行访问)可以根据给出的偏移量(索引)找到内存中的地址也就找到了响应的...原创 2019-06-30 10:59:11 · 131 阅读 · 0 评论 -
带你深入了解递归的原理--深入递归
原问题--->更小问题----->最基本的问题 最基本的问题要手动的求解(自己编写逻辑) 把原问题转化成更小的问题,不是简单的求一个更小的问题的答案,而是根据更小问题的答案构建出原问题的答案。 A调A和A调B相同 递归解决链表中的删除某一个值 递归就两部分 1.最基本的(最小的部分)标志递归的结束 2.根据简单的部分实现复杂的部分 实现链表删......原创 2019-06-30 15:38:47 · 71 阅读 · 0 评论 -
Trie字典树(前缀树)
多叉树,只处理字符串设计的 / * @每个节点更加灵活,有>26个子节点 public class Trie { private class Node{ public boolean isWord; // 对于其他的语言体系,不是character,所以不设计成泛型类 public TreeMap<Ch...原创 2019-08-06 08:02:20 · 163 阅读 · 0 评论 -
并查集
一种很比一样的树状结构 子指向父类 解决连接问题,connectivity problem,网络中节点的连接情况 连接问题,比路径问题更少 堆比较 存储了优先级,而只求最大的 public interface UF { int getSize(); boolean isConnected(int p, int q); void unionElemen...翻译 2019-08-06 12:52:51 · 93 阅读 · 0 评论 -
红黑树(2)
红黑树与2-3树是等价的 理解2-3树之后,红黑树很容易理解 a:二节点 bc节点:三节点 绝对平衡的树(左右子树的高度一定相等) 如何维持绝对平衡的? 2-3树添加节点永远不会向空节点中添加元素 融合 12与最后找到的叶子节点进行融合 (二分搜索/2-3树) 红黑树与2-3树 进一步的变化 把3节点换成...原创 2019-08-14 12:14:12 · 121 阅读 · 0 评论 -
AVL
目的: 二分搜索树在某种情况下,如顺序添加元素,会退化成链表,失去二叉树的优势 最早的能够自平衡的二叉树 常见的AVL(发明人名字首字母) 叶子节点最大高度差别最大为1 满二叉树:除了叶子节点,其他节点都有左右孩子 完全二叉树:满了之后,像下一一层的左边开始补 线段树: AVL中平衡二叉树的定义更加宽松一些:(之前是任意一个叶子节点,左右子树) 12节点,左子树高度3...原创 2019-08-12 22:20:02 · 537 阅读 · 0 评论