Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.*;
- import BST.MyIterator;
- public class Set<T extends Comparable<T>> implements Iterable<T>, Comparable <Set<T>>{
- private BST<T> set;
- private Node<T> root;
- public Set(){
- set = new BST<T>();
- }
- public Set(T[] setElements){
- //if set elements ==null throw illegal argument exception
- set = new BST<T>();
- for(T element : setElements ){
- set.insert(element);
- }
- root=set.getRoot();
- }
- boolean isEmpty() {
- return root==null;
- }
- public boolean delete(T target){
- return delete(target,root, null);
- }
- private boolean delete(T target, Node<T> p, Node<T> parent){
- if (p == null){
- return false;
- }
- int comp = target.compareTo(p.data);
- if (comp ==0) {
- Node<T> left=p.left;
- Node<T> right=p.right;
- if(p==parent.getLeft()){
- if(p.getLeft()!=null){
- parent.setLeft(p.getLeft());
- left.setLeft(p.getRight());
- }
- }
- else{ //assume getRight
- }
- else if (comp< 0) {
- return delete(target, p.getLeft(),p);
- }
- else {
- return delete(target, p.getRight(),p );
- }
- }
- public boolean insert(T value) {
- if(isEmpty()) {
- root = new Node<T>(value);
- return true;
- }
- return insert(value, root);
- }
- private boolean insert(T value, Node<T> p) {
- int comp = value.compareTo(p.data);
- if(comp == 0)
- return false;
- if(comp < 0) {
- if(p.left == null) {
- p.left = new Node<T>(value);
- return true;
- }
- return insert(value, p.left);
- }
- if(comp > 0) {
- if(p.right == null) {
- p.right = new Node<T>(value);
- return true;
- }
- return insert(value, p.right);
- }
- return false;
- }
- private Node<T> search(T target, Node<T> p) {
- if(p == null)
- return null;
- int comp = target.compareTo(p.data);
- if(comp == 0)
- return p;
- if(comp < 0)
- return search(target, p.left);
- if(comp > 0)
- return search(target, p.right);
- return null;
- }
- public Set copy(){
- }
- public String toString(){
- return iterator().toString();
- }
- public Iterator<T> iterator(){
- return new MyIterator();
- }
- public Set union(Set s){
- } // union
- public Set intersection(Set s){
- Set temp = new Set();
- for (int i = 0; i < this.size(); i++) {
- for (int j = 0; j < s.size; j++) {
- if (this[i] == s[j]) {
- temp[i] = this[i];
- }
- }
- }
- return temp;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement