All pastes #63576 Raw Edit

blAckEnEd

public cpp v1 · immutable
#63576 ·published 2006-06-10 08:00 UTC
rendered paste body
#include "StdAfx.h"#include "BST.h"Node::Node(void){	value = 0;	left = NULL;	right = NULL;}Node::Node(int value){	this->value = value;	left = NULL;	right = NULL;}Node::~Node(void){	delete left;	delete right;}BST::BST(void){	root = NULL;}BST::~BST(void){	delete root;}void _insert(Node** root, Node* node){	Node* aux = *root;	if (!aux)	{		*root = node;	}	else if (node->value <= aux->value)	{		_insert(&aux->left, node);	}	else	{		_insert(&aux->right, node);	}}void BST::Insert(Node* node){	_insert(&root, node);}Node* _search(Node* root, int i){	if (!root)	{		return NULL;	}	if (i < root->value)	{		return _search(root->left, i);	}	else if (i > root->value)	{		return _search(root->right, i);	}	else	{		return root;	}}Node* BST::Search(int i){	return _search(root, i);}void _delete(Node*& root){	Node* aux = root;	if (!aux->left)	{		root = root->right;		delete aux;	}	else if (!aux->right)	{		root = root->left;		delete aux;	}	else	{		aux = root->left;		while (aux->right)		{			aux = aux->right;		}		root->value = aux->value;		_delete(aux);	}}void BST::Delete(int i){	Node* node = Search(i);	if (!node)	{		return;	}	_delete(node);}