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;
    }
    }
    }

  • 相关阅读:
    操作元素
    CSS3 制作网格动画效果
    网页边栏过渡动画
    超炫的 CSS3 页面切换动画效果
    多种鼠标悬停效果
    各种 SVG 制作单选和多选框动画
    全屏遮罩层效果(10种)
    FancyBox – 经典 Lightbox 效果插件
    CSS3 & SVG 制作钟表
    20种新颖的按钮风格和效果【附源码】
  • 原文地址:https://www.cnblogs.com/wanjn/p/8433661.html
Copyright © 2011-2022 走看看