java实现简单的二叉树

 首先创建node的树形结构

package com.assinfo.controller.tree;

public class Node {
    private  int data;
    private Node lchild;
    private Node rchild;

    public Node() {

    }

    public int getData() {
        return data;
    }

    public void setData(int data) {
        this.data = data;
    }

    public Node getLchild() {
        return lchild;
    }

    public void setLchild(Node lchild) {
        this.lchild = lchild;
    }

    public Node getRchild() {
        return rchild;
    }

    public void setRchild(Node rchild) {
        this.rchild = rchild;
    }

    public Node(int data) {
        this.data = data;
    }

    @Override
    public String toString() {
        return "Node{" +
                "data=" + data +
                ", lchild=" + lchild +
                ", rchild=" + rchild +
                '}';
    }
}

为二叉树进行插入以及为其进行遍历(先序遍历)

package com.assinfo.controller.tree;

import org.apache.ibatis.annotations.Insert;

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;

public class Formaluetree {
    public void InsertTree(Node node, Node orign){
        if(node.getData()==0){
            orign.setData(node.getData());
        }
        if(node.getData()<orign.getData()){
            if (orign.getLchild() != null) {
                InsertTree(node, orign.getLchild());
            }else{
                orign.setLchild(node);
            }
        }else if(node.getData()>orign.getData()){
            if(orign.getRchild()!=null){
                InsertTree(node,orign.getRchild());
            }else{
                orign.setRchild(node);
            }
        }else{

        }
    }

    public void searchTree(Node node){
            System.out.print(node.getData()+"\n");
        if(node.getLchild()!=null){
            searchTree(node.getLchild());
        }
        if(node.getRchild()!=null) {
            searchTree(node.getRchild());
        }
    }

    public static void main(String[] args) {
        Formaluetree binaryTree = new Formaluetree();
        Node orign = new Node();
        orign.setData(5);
        binaryTree.InsertTree(new Node(2),orign);
        binaryTree.InsertTree(new Node(1),orign);
        binaryTree.InsertTree(new Node(3),orign);
        binaryTree.InsertTree(new Node(4),orign);
        binaryTree.InsertTree(new Node(6),orign);
        binaryTree.InsertTree(new Node(7),orign);
        binaryTree.searchTree(orign);
    }
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值