The assignment will have us built two trees: a Binary Search Tree and a Binary Expression Tree.
I have started working on both, but I have been mainly focusing on the BS Tree since to me its the easiest of the two. I am actually almost done with the BS Tree, here is what I have:
class BinarySearchTree { public TreeNoderoot; private int node_count; public BinarySearchTree() { root = null; node_count = 0; } public void Add(int item) { TreeNode new_node = new TreeNode (item); if (root == null) root = new_node; else { TreeNode crawler = root; while (crawler != null) { new_node.parent = crawler; if (item >= crawler.data) crawler = crawler.right; else crawler = crawler.left; } if (item >= new_node.parent.data) new_node.parent.right = new_node; else new_node.parent.left = new_node; } node_count++; } public bool Contains(int item) { TreeNode crawler = root; while (crawler != null) { if (item == crawler.data) return true; else if (item >= crawler.data) crawler = crawler.right; else crawler = crawler.left; } return false; } public void Clear() { root = null; node_count = 0; } public int NodeCount { get { return node_count; } } public void TraversePre(MyList list, TreeNode node) { list.Add(node.data); if (node.left != null) TraversePre(list, node.left); if (node.right != null) TraversePre(list, node.right); } public void TraverseIn(MyList list, TreeNode node) { if (node.left != null) TraverseIn(list, node.left); list.Add(node.data); if (node.right != null) TraverseIn(list, node.right); } public void TraversePost(MyList list, TreeNode node) { if (node.left != null) TraversePost(list, node.left); if (node.right != null) TraversePost(list, node.right); list.Add(node.data); } }
My Binary Search Tree takes advantage of the List class I wrote for assignment 4 and of a Node class that has only three properties: Left, Right, & Parent. That's all for now, thanks for reading!
No comments:
Post a Comment