比较器、优先级队列、二叉树

  1. 比较器
    1. 优先级队列
    2. 二叉树

比较器

  1. 应用在系统排序方法中
  2. 应用在与排序有关的结构中:TreeSet\TreeMap\优先级队列(堆)\有序表

优先级队列

PriorityQueue+MyComparator

二叉树

  1. 先序:头 左 右

  2. 中序:左 头 右

  3. 后序:左 右 头

  4. 递归遍历

    // 先序中序后序都是递归序加工而来
    // 先序打印所有节点 头 左 右
    public static void pre(Node head) {
        if (head == null) {
            return;
        }
        System.out.println(head.value);
        pre(head.left);
        pre(head.right);
    }
    
    // 先序打印所有节点
    public static void in(Node head) {
        if (head == null) {
            return;
        }
        in(head.left);
        System.out.println(head.value);
        in(head.right);
    }
    
    // 后序打印所有节点
    public static void pos(Node head) {
        if (head == null) {
            return;
        }
        pos(head.left);
        pos(head.right);
        System.out.println(head.value);
    }
    
  5. 按层遍历(讲了题了)

  6. java的栈比较慢

    1. (假)如果需要用到栈,可以用LinkedList从尾巴入,从尾巴出(也就是双端队列,当成单端的用)
      LinkedList<Integer> s = new LinkedList<>();
      s.addLast(1);
      s.addLast(2);
      s.addLast(3);
      while (!s.isEmpty()) {
          System.out.println(s.pollLast());
      }
      
    2. (真)如果明确知道栈的长度不超过100,可以用数组替代
      int[] sta = new int[100];
      int index = 0;
      sta[index++] = 1;
      sta[index++] = 2;
      sta[index++] = 3;
      System.out.println(sta[--index]);
      System.out.println(sta[--index]);
      System.out.println(sta[--index]);
      

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达,可以邮件至 963614756@qq.com。