zoukankan      html  css  js  c++  java
  • 因为现在这个水平还用不到树和图,所有之后放弃树和图的学习,直接进入排序的学习,现在学到排序树的删除部分,还没学完删除

    package tree;

    /**
    * 排序树
    *
    * @author Administrator
    *
    */
    public class SortedTree {
    private Node root;

    public void insert(int i) {
    Node newNode = new Node(i);
    // 第一次插入
    if (root == null) {
    root = newNode;
    } else {
    Node current = root;
    Node father = null;
    while (current != null) {
    father = current;

    if (current.value >= i) {// 添加到左节点
    current = current.left;
    } else {// 添加到右节点
    current = current.right;
    }
    }
    // 插入数据
    if (father.value >= i) {// 添加到左节点
    father.left = newNode;
    } else {// 添加到右节点
    father.right = newNode;
    }
    }

    }

    /**
    * 中根遍历
    */
    public void midOrder() {
    doMidOrder(root);
    }

    private void doMidOrder(Node node) {
    // 先遍历左子树
    if (node.left != null) {
    doMidOrder(node.left);
    }
    // 再遍历根节点
    System.out.print(node.value + " ");
    // 最后遍历右子树
    if (node.right != null) {
    doMidOrder(node.right);
    }
    }

    /**
    * 后根遍历
    */
    public void lastOrder() {
    doLastOrder(root);
    }

    private void doLastOrder(Node node) {
    // 先遍历左子树
    if (node.left != null) {
    doLastOrder(node.left);
    }

    // 再遍历右子树
    if (node.right != null) {
    doLastOrder(node.right);
    }
    // 最后遍历根节点
    System.out.print(node.value + " ");
    }

    private class Node {
    Node left;// 左儿子
    int value;// 节点值
    Node right;// 右儿子
    int layerNo;// 层数

    private Node(int value) {
    this.value = value;
    }
    }
    }

  • 相关阅读:
    微信小程序 'errcode' => 47003,'errmsg' => 'argument invalid! hint
    微信分账
    Acwing-----1016. 最大上升子序列和
    Acwing-----1012. 友好城市
    Acwing-----482. 合唱队形
    Acwing-----1014. 登山
    Acwing-----1017. 怪盗基德的滑翔翼
    Acwing-----275. 传纸条
    Acwing-----1027. 方格取数
    Acwing-----1018. 最低通行费
  • 原文地址:https://www.cnblogs.com/wanjn/p/8433661.html
Copyright © 2011-2022 走看看