算法、数据结构
临海听风V
千里之行,始于足下。
个人网站:www.samuelandkevin.cn
github:https://github.com/samuelandkevin
展开
-
数据结构 - 树、二叉树、完全二叉树、真二叉树、满二叉树
01-树 节点的度:子树的个数。 树的度:所有节点度中的最大值。 叶子节点:度为0的节点。 非叶子节点:度不为0的节点。 层数:根节点在第一层,根节点的子节点在第二层,以此类推 节点的深度:从根节点到当前节点的唯一路径上的节点总数。 节点的高度:从当前节点到最远叶子节点的路径上的节点总数。 树的深度:所有节点深度中的最大值。 树的高度:所有节点高度中的最大值。 树的深度等于树的高度。 有序树:树中...原创 2020-03-10 09:05:07 · 786 阅读 · 0 评论 -
时间复杂度
在程序中,假设每个分号代表执行一步。 public class Main { /* 0 1 2 3 4 5 * 0 1 1 2 3 5 8 13 .... */ // O(2^n) public static int fib1(int n) { if (n <= 1) return n; return fib1(n - 1) + fib1(n - 2); } ...原创 2020-03-09 17:47:29 · 153 阅读 · 0 评论 -
数据结构-常用知识点
链表 单向链表 O(n) 双向链表 O(1) 双向链表 1.添加元素 头插法:将右边固定,左边头部新增元素。 尾插法:将左边固定,右边头部新增元素。 2.应用场景。 实际应用LRU ,Java中的 「 Mybatis 」,iOS中的 「YYCache」与「Lottie」。 链表实现LRU: 如果缓存在链表中,遍历得到该数据所在的结点,并将其从原来的位置删除,通过头插法插到链头。 如果没缓存,再判断...原创 2019-05-06 20:40:29 · 176 阅读 · 0 评论