package com.coding.basic; public class BinaryTreeNode { private int data; private BinaryTreeNode left; private BinaryTreeNode right; private BinaryTreeNode root; public BinaryTreeNode getRoot() { return root; } public Object getData() { return data; } public void setData(int data) { this.data = data; } public BinaryTreeNode getLeft() { return left; } public void setLeft(BinaryTreeNode left) { this.left = left; } public BinaryTreeNode getRight() { return right; } public void setRight(BinaryTreeNode right) { this.right = right; } public void insert(int value){ BinaryTreeNode newNode = new BinaryTreeNode(); if(root == null) { root=newNode; root.left = null; root.right = null; } else { BinaryTreeNode currentNode = root; BinaryTreeNode parentNode; while(true) { parentNode = currentNode; if(newNode.data > currentNode.data) { currentNode = currentNode.getRight(); if(currentNode == null) { parentNode.setRight(newNode); return; } } else { currentNode = currentNode.getLeft(); if(currentNode == null) { parentNode.setLeft(newNode); return; } } } } } public boolean find(int key) { BinaryTreeNode cNode = root; if(cNode != null) { while(cNode.data != key) { if(cNode.data > key) { cNode = cNode.getLeft(); } else { cNode = cNode.getRight(); } return true; } return true; } return false; } //������� public void inOrder(BinaryTreeNode treeNode) { if(treeNode != null) { inOrder(treeNode.getLeft()); System.out.println(treeNode.data); inOrder(treeNode.getRight()); } } //������� public void leftOrder(BinaryTreeNode treeNode) { if(treeNode != null) { leftOrder(treeNode.getLeft()); System.out.println(treeNode.data); leftOrder(treeNode.getRight()); } } //������� public void rightOrder(BinaryTreeNode treeNode) { if(treeNode != null) { rightOrder(treeNode.getLeft()); System.out.println(treeNode.data); rightOrder(treeNode.getRight()); } } }