All pastes #1892568 Raw Edit

Pre-order BST print

public cpp v1 · immutable
#1892568 ·published 2010-06-30 23:10 UTC
rendered paste body
#include <iostream>#include <queue>using namespace std;template<class T>struct Node{public:	Node(){		left = right = 0;	}		Node(const T& data_in){		value = data_in;		left = right = 0;	}			T value;	Node *left, *right;};template<class T>class BinaryTree{public:	BinaryTree(){		root = 0;	}		bool insert(const T& in_value){				if(root == 0){			root = new Node<T>(in_value);		}else{			Node<T> *temp = root, *temp_old;			while(temp != 0){				temp_old = temp;								if(temp->value = in_value){					return false;				}else if (temp->value < in_value){					temp = temp->right;				}else if (temp->value > in_value){					temp = temp->left;				}			}						Node<T> *new_node;			new_node = new Node<T>(in_value);						if (temp_old->value > in_value){				temp_old->left = new_node;			}else{				temp_old->right = new_node;							}		}				return true;	}		void preorder_print(){				queue< Node<T> > new_queue;		Node<T> *temp;				new_queue.push(*root);		while(!new_queue.empty()){			*temp = new_queue.front();			new_queue.pop();						cout << temp->value;			new_queue.push(*temp->left);			new_queue.push(*temp->right);		}	}	Node<T> *root;};int main(){	BinaryTree<int> int_tree;		int a=1,b=2,c=3;		int_tree.insert(b);	int_tree.insert(a);	int_tree.insert(c);		int_tree.preorder_print();		return 0;};