转: 在JAVA中实现的二叉树结构

来源:互联网 发布:java c 区别 编辑:程序博客网 时间:2024/05/08 00:31



public class BinaryTreeTest {      private BinaryTree root = null;      public BinaryTreeTest() {          init();      }      private void init() {          int data[] = { 12, 11, 34, 45, 67, 38, 56, 43, 22, 8 };          root = new BinaryTree(data[0]);          System.out.println(":");          System.out.println("------------------------------------");          System.out.println(data[0] + ":root");          for (int i = 1; i < data.length; i++) {              System.out.print(data[i] + ":");              root.insertTree(root, data[i]);          }          System.out.println("------------------------------------");      }      public void serach(int key) {          if (searchkey(root, key)) {              System.out.println("have found it :" + key);          } else {              System.out.println("not found it :" + key);          }      }      private boolean searchkey(BinaryTree root, int key) {          if (root == null) {              return false;          } else if (root.data == key) {              return true;          } else if (key >= root.data) {              return searchkey(root.rightpoiter, key);          }          return searchkey(root.leftpoiter, key);      }      class BinaryTree {          int data;          BinaryTree leftpoiter;          BinaryTree rightpoiter;          BinaryTree(int data) {              this.data = data;              leftpoiter = null;              rightpoiter = null;          }          private void insertTree(BinaryTree root, int data) {              if (data >= root.data) {                  if (root.rightpoiter == null) {                      System.out.println(" -> new rightpoiter");                      root.rightpoiter = new BinaryTree(data);                  } else {                      System.out.print(" -> rightpoiter");                      insertTree(root.rightpoiter, data);                  }              } else {                  if (root.leftpoiter == null) {                      System.out.println(" -> new leftpoiter");                      root.leftpoiter = new BinaryTree(data);                  } else {                      System.out.print(" -> leftpoiter");                      insertTree(root.leftpoiter, data);                  }              }          }      }      public static void main(String args[]) {          BinaryTreeTest b = new BinaryTreeTest();          int key = 8;          b.serach(key);      }  }  


原创粉丝点击