Como manejar nodos en un arbol?

iod
04 de Junio del 2005
Tengo que hacer una agenda telefonica, utilizando nodos (en un arbol), pidiendo los siguientes datos:

Codigo: esta sera la llave para identificar si no se repiten los registros y tambien para ordenar el arbol.

Telefono

Nombre

Con las siguientes opciones:

Agregar elemento

Eliminar elemento (aqui es el problema)

Salir.

El problema radica en que al momento de eliminar un nodo del arbol, las ramas que estan unidas al padre que se acaba de eliminar, tienen que ser puestas en orden otra vez, respetando las reglas de un arbol. Y a duras penas se que es lo que hace un arbol, o como funciona.

Quisiera que me ayudaran, no haciendo el programa, mas bien, dando un pequeño ejemplo de una manera de resolver este problema que tengo.

De antemano gracias.
De antemano gracias