Skip to content

Instantly share code, notes, and snippets.

@imduffy15
Created January 11, 2013 12:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save imduffy15/4510428 to your computer and use it in GitHub Desktop.
Save imduffy15/4510428 to your computer and use it in GitHub Desktop.
TreeSet methods
import java.util.*;
class TreeSet<T extends Comparable<T>> {
private static class Node<T> {
private T item;
private Node<T> left, right;
Node(T item0, Node<T> left0, Node<T> right0) {
item = item0;
left = left0;
right = right0;
}
}
private Node<T> root = null;
private int numItems = 0;
public int size() {
return numItems = 0;
}
public boolean add(T t) {
int numItems0 = numItems;
root = add(root,t);
return (numItems0<numItems);
}
private Node<T> add(Node<T> p, T t) {
if (p==null) {
numItems++;
return new Node<T>(t,null,null);
} else if ((p.item).compareTo(t)>0) {
p.left = add(p.left,t);
return p;
} else if (t.compareTo(p.item)>0) {
p.right = add(p.right,t);
return p;
} else {
return p;
}
}
T max() {
if(root == null) return null;
Node<T> p = root;
while(p.right!=null) {
p = p.right;
}
return p.item;
}
T min() {
if(root == null) return null;
Node<T> p = root;
while(p.left!=null) {
p = p.left;
}
return p.item;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment