fork(1) download
  1. import java.util.*;
  2. import java.lang.*;
  3. import java.io.*;
  4.  
  5. class Ideone
  6. {
  7. public static void main (String[] args) throws java.lang.Exception
  8. {
  9. BTree<Integer> btree = new BTree<Integer>();
  10.  
  11. // ①二分木にノードを追加する
  12. btree.add(Integer.valueOf(2));
  13.  
  14. // ②二分木からノードを削除する
  15. btree.delete(Integer.valueOf(2));
  16. }
  17. }
  18.  
  19.  
  20. class BTree<T extends Comparable>
  21. {
  22. private class Node<T extends Comparable>
  23. {
  24. T item = null;
  25. Node<T> left = null;
  26. Node<T> right = null;
  27.  
  28. void add(T item) {
  29. if (this.item == null) {
  30. this.item = item;
  31. } else {
  32. if (this.item.compareTo(item) < 0) {
  33. if (left == null) {
  34. left = new Node<T>();
  35. }
  36. left.add(item);
  37. } else {
  38. if (right == null) {
  39. right = new Node<T>();
  40. }
  41. right.add(item);
  42. }
  43. }
  44. }
  45.  
  46. boolean delete(T item) {
  47. if (this.item != null) {
  48. if (this.item.compareTo(item) == 0) {
  49. this.item = null;
  50. return true;
  51. }
  52. }
  53. if (left != null) {
  54. if (left.delete(item)) {
  55. return true;
  56. }
  57. }
  58. if (right != null) {
  59. if (right.delete(item)) {
  60. return true;
  61. }
  62. }
  63. return false;
  64. }
  65. }
  66.  
  67. private Node<T> root = new Node<T>();
  68.  
  69. public void add(T item) {
  70. root.add(item);
  71. }
  72.  
  73. public boolean delete(T item) {
  74. return root.delete(item);
  75. }
  76. }
Success #stdin #stdout 0.07s 380224KB
stdin
Standard input is empty
stdout
Standard output is empty