zoukankan      html  css  js  c++  java
  • 十八 、二叉树的基本操作

    原理图:

    源代码

    Node :

    public class Node {
    int data; //数据项
    String name ; //数据项
    public Node leftChild; //左子树
    public Node rightChild; //右子树


    public Node(int value,String name) {
    // TODO Auto-generated constructor stub
    data = value;
    this.name = name;
    }
    }

    Tree:

    public class Tree {
    public Node root; //根节点

    public void insert(int value,String name) //插入结点
    {
    //封装成结点
    Node newNode = new Node(value,name);
    //引用当前结点
    Node current = root;
    //引用父结点
    Node parent;
    //判断是否为空树
    if(current == null)
    {
    root = newNode;
    return;
    }else
    {
    while(true)
    {
    parent = current; //父结点指向当前结点
    if(current.data > value) //要插入的值小于该结点的值
    {
    current = current.leftChild; //往左走
    if(current == null) //到了叶子结点
    {
    parent.leftChild =newNode;
    return;
    }
    }
    else
    {
    current = current.rightChild; //往右走
    if(current == null)
    {
    parent.rightChild = newNode;
    return;
    }
    }
    }

    }


    }


    //查找结点
    public Node find(int value)
    {
    Node current = root; //指向根节点

    while(current.data != value)
    {
    if(current.data > value)
    {
    current = current.leftChild;
    }
    else
    {
    current = current.rightChild;
    }

    if(current == null)
    {
    return null;
    }
    }
    return current;
    }


    }

  • 相关阅读:
    第16次作业
    第15次作业
    第14次作业
    第13次作业
    第12次作业
    第11次作业
    第十次作业
    第九次作业
    第八次作业
    滚动视图练习
  • 原文地址:https://www.cnblogs.com/fyz666/p/8507861.html
Copyright © 2011-2022 走看看