Skip to content

Commit

Permalink
Adding iterative InsertNode Method.
Browse files Browse the repository at this point in the history
  • Loading branch information
tmorcinek committed Sep 9, 2014
1 parent d6b6b11 commit 78d8520
Showing 1 changed file with 28 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -42,11 +42,12 @@ public String toString() {

@Override
public void insert(T value) {
if (root == null) {
root = new BSTNode(null, value);
} else {
insertNode(root, value);
}
// if (root == null) {
// root = new BSTNode(null, value);
// } else {
// insertNode(root, value);
// }
iterativeInsertNode(root, value);
}

public void insertNode(BSTNode node, T value) {
Expand All @@ -65,6 +66,28 @@ public void insertNode(BSTNode node, T value) {
}
}

public void iterativeInsertNode(BSTNode node, T value) {
BSTNode parent = null;
while (node != null) {
parent = node;
if (value.compareTo(node.value) <= 0) {
node = node.left;
} else {
node = node.right;
}
}
node = new BSTNode(parent, value);
if (parent != null) {
if (value.compareTo(parent.value) <= 0) {
parent.left = node;
} else {
parent.right = node;
}
} else {
root = node;
}
}

@Override
public Object[] getInOrderValues() {
List<T> values = new ArrayList<T>();
Expand Down

0 comments on commit 78d8520

Please sign in to comment.