摘要:
有向图,无环, 有入度为零 的 点 先看哪个点是入度为0的点 比如A 然后把 以 A出发的 路径叉掉 找下一个入度为0的点 。 重复操作 public static void sortedTopology(Graph graph) { // 拓扑排序 // 保存 节点剩余的入度 HashMap<No
阅读全文
posted @ 2022-05-08 21:36
llcl
阅读(63)
推荐(0)
摘要:
图的存储方式 邻接表 邻接矩阵 正方形矩阵 A B C D A 0 - 7 3 B - 0 2 - C 7 2 0 5 D 3 - 5 0 表达图。。。 生成图 有向图 无向图 权值 点 + 边 点如下 public class Node { // 点集 public int value; // 编
阅读全文
posted @ 2022-05-08 12:56
llcl
阅读(68)
推荐(0)
摘要:
在二叉树中找到一个节点的后继节点 二叉树节点多了个属性 parent public static class NewNode { public int value; public NewNode left; public NewNode right; public NewNode parent; p
阅读全文
posted @ 2022-05-08 10:51
llcl
阅读(156)
推荐(0)
摘要:
## node1 和 node2 的最低公共祖先节点 ### 第一种简单 暴力 的方法,遍历整颗树,使用map 把每个节点自己的父节点保存,key是node, value是父node 然后把node1 往上 遍历找自己的祖辈,保存在set 里, 然后node2 往上遍历,如果找到第一个在 node1
阅读全文
posted @ 2022-05-08 10:06
llcl
阅读(82)
推荐(0)
摘要:
向下新起一行 ctrl + enter 向上新起一行 ctrl + shfit + enter 跳转 函数方法 声明的地方 F12 回到上次编辑的位置 alt + ← 快速修改 ctrl + . 注意:和微软拼音 和 搜狗输入法 中英文标点切换 快捷键冲突,需要先关闭。
阅读全文
posted @ 2022-05-08 09:43
llcl
阅读(29)
推荐(0)
摘要:
完全二叉树定义: 每一层都是满的,最后一层如果不满,也是从左到右依次排列 宽度优先遍历 1) 任一节点,有右孩子,没左孩子, return false; 2) 在1不违规的情况下,遇到第一个左右俩孩子不双全的情况。接下来所有的节点必须是叶节点 public static boolean isCBT(
阅读全文
posted @ 2022-05-06 23:38
llcl
阅读(463)
推荐(0)
摘要:
搜索二叉树定义: 每一颗子树,左树都比节点小,右树都比节点大,无重复值。 中序遍历 依次递增就行 public static Integer preValue = Integer.MIN_VALUE; public static boolean isBst(Node head){ if(head =
阅读全文
posted @ 2022-05-05 23:55
llcl
阅读(44)
推荐(0)
摘要:
二叉树深度优先遍历就是 先序遍历 二叉树宽度优先遍历, 用队列,先进先出,先放左,再放右 public static void widthOrder(Node head) { if (head == null) { return; } Queue<Node> queue = new LinkedLi
阅读全文
posted @ 2022-05-05 23:28
llcl
阅读(63)
推荐(0)
摘要:
递归序 每个节点都会 来到 三次 然后根据在每次来的时候,在哪一次操作,分为三种遍历,都是基于根节点为参考 先序, 头 左 右 中序, 左 头 右 后序, 左 右 头 递归实现 public static class Node { int value; Node left; Node right;
阅读全文
posted @ 2022-05-04 19:51
llcl
阅读(73)
推荐(0)
摘要:
单链表结构 public class Node<V> { V value; Node next; } 双链表 public class DoubleNode<V> { V value; DoubleNode next; DoubleNode last; } 反转单向链表 public static
阅读全文
posted @ 2022-05-02 13:48
llcl
阅读(73)
推荐(0)