Advertisement
Guest User

Untitled

a guest
Mar 28th, 2015
236
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.76 KB | None | 0 0
  1. import java.util.*;
  2.  
  3. import BST.MyIterator;
  4. public class Set<T extends Comparable<T>> implements Iterable<T>, Comparable <Set<T>>{
  5. private BST<T> set;
  6. private Node<T> root;
  7. public Set(){
  8. set = new BST<T>();
  9. }
  10. public Set(T[] setElements){
  11. //if set elements ==null throw illegal argument exception
  12. set = new BST<T>();
  13. for(T element : setElements ){
  14. set.insert(element);
  15. }
  16.  
  17. root=set.getRoot();
  18.  
  19. }
  20. boolean isEmpty() {
  21. return root==null;
  22. }
  23. public boolean delete(T target){
  24. return delete(target,root, null);
  25.  
  26. }
  27. private boolean delete(T target, Node<T> p, Node<T> parent){
  28. if (p == null){
  29. return false;
  30. }
  31. int comp = target.compareTo(p.data);
  32. if (comp ==0) {
  33. Node<T> left=p.left;
  34. Node<T> right=p.right;
  35. if(p==parent.getLeft()){
  36. if(p.getLeft()!=null){
  37. parent.setLeft(p.getLeft());
  38. left.setLeft(p.getRight());
  39. }
  40. }
  41.  
  42.  
  43. else{ //assume getRight
  44.  
  45. }
  46.  
  47. else if (comp< 0) {
  48. return delete(target, p.getLeft(),p);
  49.  
  50. }
  51. else {
  52. return delete(target, p.getRight(),p );
  53. }
  54. }
  55.  
  56. public boolean insert(T value) {
  57. if(isEmpty()) {
  58. root = new Node<T>(value);
  59. return true;
  60. }
  61. return insert(value, root);
  62. }
  63.  
  64. private boolean insert(T value, Node<T> p) {
  65. int comp = value.compareTo(p.data);
  66. if(comp == 0)
  67. return false;
  68. if(comp < 0) {
  69. if(p.left == null) {
  70. p.left = new Node<T>(value);
  71. return true;
  72. }
  73. return insert(value, p.left);
  74. }
  75. if(comp > 0) {
  76. if(p.right == null) {
  77. p.right = new Node<T>(value);
  78. return true;
  79. }
  80. return insert(value, p.right);
  81. }
  82. return false;
  83. }
  84.  
  85. private Node<T> search(T target, Node<T> p) {
  86. if(p == null)
  87. return null;
  88. int comp = target.compareTo(p.data);
  89. if(comp == 0)
  90. return p;
  91. if(comp < 0)
  92. return search(target, p.left);
  93. if(comp > 0)
  94. return search(target, p.right);
  95. return null;
  96. }
  97. public Set copy(){
  98.  
  99. }
  100.  
  101. public String toString(){
  102. return iterator().toString();
  103. }
  104. public Iterator<T> iterator(){
  105. return new MyIterator();
  106. }
  107. public Set union(Set s){
  108.  
  109. } // union
  110. public Set intersection(Set s){
  111. Set temp = new Set();
  112. for (int i = 0; i < this.size(); i++) {
  113. for (int j = 0; j < s.size; j++) {
  114. if (this[i] == s[j]) {
  115. temp[i] = this[i];
  116. }
  117. }
  118. }
  119. return temp;
  120. }
  121. }
  122.  
  123. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement