首页 > Java开发 > java开发实现二叉树

java开发实现二叉树

java开发实现二叉树

代码如下:

  1. package com.litao;
  2. import java.util.Arrays;
  3. public class Node
  4. {
  5.     private Node right;
  6.     private Node left;
  7.     private int value;
  8.     public Node(int value)
  9.     {
  10.         this.value = value;
  11.     }
  12.     public void add(int value)
  13.     {
  14.         if (value > this.value)
  15.         {
  16.             if (right != null)
  17.             {
  18.                 right.add(value);
  19.             } else
  20.             {
  21.                 Node node = new Node(value);
  22.                 right = node;
  23.             }
  24.         } else
  25.         {
  26.             if (left != null)
  27.             {
  28.                 left.add(value);
  29.             } else
  30.             {
  31.                 Node node = new Node(value);
  32.                 left = node;
  33.             }
  34.         }
  35.     }
  36.     public boolean find(int value)
  37.     {
  38.         if (value == this.value)
  39.         {
  40.             return true;
  41.         } else if (value > this.value)
  42.         {
  43.             if (right == null)
  44.             {
  45.                 return false;
  46.             } else
  47.             {
  48.                 return right.find(value);
  49.             }
  50.         } else
  51.         {
  52.             if (left == null)
  53.             {
  54.                 return false;
  55.             } else
  56.             {
  57.                 return left.find(value);
  58.             }
  59.         }
  60.     }
  61.     public static boolean contains(int[] arr, int value)
  62.     {
  63.         for (int i = 0; i < arr.length; i++)
  64.         {
  65.             if (arr[i] == value)
  66.             {
  67.                 return true;
  68.             }
  69.         }
  70.         return false;
  71.     }
  72.     public void diaplay()
  73.     {
  74.         System.out.println(value);
  75.         if (right != null)
  76.         {
  77.             right.diaplay();
  78.         }
  79.         if (left != null)
  80.         {
  81.             left.diaplay();
  82.         }
  83.     }
  84.     public static void main(String[] args)
  85.     {
  86.         int[] values = new int[8];
  87.         for (int i = 0; i < values.length; i++)
  88.         {
  89.             int num = (int) (Math.random() * 15);
  90.             if(!contains(values, num))
  91.             {
  92.                 values[i] = num;
  93.             }else
  94.             {
  95.                 i--;
  96.             }
  97.         }
  98.         System.out.println(Arrays.toString(values));
  99.         Node node = new Node(values[0]);
  100.         for(int i = 1; i < values.length;i++)
  101.         {
  102.             node.add(values[i]);
  103.         }
  104.         System.out.println(node.find(11));
  105.         node.diaplay();
  106.     }
  107. }

本文固定链接: http://www.devba.com/index.php/archives/810.html | 开发吧

报歉!评论已关闭.