- public class NodoT 
-     { 
-         public NodoT NodoIzquierdo; 
-         public int Informacion; 
-         public NodoT NodoDerecho; 
-         //Constructor 
-         public NodoT() 
-         { 
-             this.NodoIzquierdo=null; 
-             this.Informacion=0; 
-             this.NodoDerecho=null; 
-         } 
-     } 
-     /// <summary> 
-     /// Summary description for Class1. 
-     /// </summary> 
-     class Class1 
-     { 
-         /// <summary> 
-         /// The main entry point for the application. 
-         /// </summary> 
-         [STAThread] 
-         static void Main(string[] args) 
-         { 
-             ClearConsole ClearMyConsole = new ClearConsole(); 
-             int Opcion=0; 
-             NodoT Raiz=null; 
-             int Dato; 
-             do 
-             { 
-                 Opcion=Menu(); 
-                 switch(Opcion) 
-                 { 
-                     case 1: Console.Write("Valor del Nuevo Nodo: "); 
-                             Dato=int.Parse(Console.ReadLine()); 
-                             if(Raiz==null) 
-                             { 
-                                 NodoT NuevoNodo=new NodoT(); 
-                                 NuevoNodo.Informacion=Dato; 
-                                 Raiz=NuevoNodo; 
-                             } 
-                             else 
-                             { 
-                                 Insertar(Raiz, Dato); 
-                             } 
-                             ClearMyConsole.Clear(); 
-                             break; 
-                             //Recorrido en Pre Orden del Arbol 
-                     case 2: RecorridoPreorden(Raiz); 
-                             Console.WriteLine("Fin del Recorrido,..."); 
-                             Console.ReadLine(); 
-                             ClearMyConsole.Clear(); 
-                             break; 
-                             //Recorrido en Post Orden del Arbol 
-                     case 3: RecorridoPostorden(Raiz); 
-                             Console.WriteLine("Fin del Recorrido,..."); 
-                             Console.ReadLine(); 
-                             ClearMyConsole.Clear(); 
-                             break; 
-                             //Recorrido en In Orden del Arbol 
-                     case 4: RecorridoInorden(Raiz); 
-                             Console.WriteLine("Fin del Recorrido,..."); 
-                             Console.ReadLine(); 
-                             ClearMyConsole.Clear(); 
-                             break; 
-                     case 5: Console.Write("Teclee el Dato a Buscar: "); 
-                             Dato=int.Parse(Console.ReadLine()); 
-                             if(Raiz!=null) 
-                             { 
-                                 BuscarNodo(Raiz, Dato); 
-                             } 
-                             else 
-                             { 
-                                 Console.WriteLine("ERROR, Arbol Vacio...."); 
-                             }                            
-                             ClearMyConsole.Clear(); 
-                             break; 
-                     case 6: Console.Write("Teclee el Dato a Eliminar: "); 
-                             Dato=int.Parse(Console.ReadLine()); 
-                             if(Raiz!=null) 
-                             { 
-                                 EliminarNodo(ref Raiz, Dato); 
-                             } 
-                             else 
-                             { 
-                                 Console.WriteLine("ERROR, Arbol Vacio...."); 
-                             }    
-                             ClearMyConsole.Clear(); 
-                             break; 
-                     case 7: Finalizar(); 
-                             break; 
-                 } 
-             }while(Opcion!=7); 
-   
-         } 
-         static int Menu() 
-         { 
-             ClearConsole ClearMyConsole = new ClearConsole(); 
-             int Resultado=0; 
-             do 
-             { 
-                 Console.WriteLine("MENU DE ARBOLES"); 
-                 Console.WriteLine(""); 
-                 Console.WriteLine("1.- Registrar un Nuevo Nodo"); 
-                 Console.WriteLine("2.- Recorrido en Pre-orden"); 
-                 Console.WriteLine("3.- Recorrido en Post-orden"); 
-                 Console.WriteLine("4.- Recorrido en In-orden"); 
-                 Console.WriteLine("5.- Buscar un Nodo"); 
-                 Console.WriteLine("6.- Eliminar un Nodo"); 
-                 Console.WriteLine("7.- Finalizar el Programa"); 
-                 Console.WriteLine(""); 
-                 Console.Write("Teclee la Opcion Deseada: "); 
-                 Resultado=int.Parse(Console.ReadLine()); 
-                 Console.WriteLine(""); 
-                 if(Resultado<1||Resultado>7) 
-                 { 
-                     Console.WriteLine("ERROR, Opcion Invalida...."); 
-                     Console.ReadLine(); 
-                     Console.WriteLine(""); 
-                 } 
-                 ClearMyConsole.Clear(); 
-             }while(Resultado<1||Resultado>7); 
-             return Resultado; 
-         } 
-         //Insertar en un arbol binario 
-         static void Insertar(NodoT Raiz, int Dato) 
-         { 
-             if(Dato<Raiz.Informacion) 
-             { 
-                 if(Raiz.NodoIzquierdo==null) 
-                 { 
-                     NodoT NuevoNodo=new NodoT(); 
-                     NuevoNodo.Informacion=Dato; 
-                     Raiz.NodoIzquierdo=NuevoNodo; 
-                 } 
-                 else 
-                 { 
-                     //Llamada recursiva 
-                     Insertar(Raiz.NodoIzquierdo, Dato); 
-                 } 
-             } 
-             else//Buscar por el lado derecho 
-             { 
-                 if(Dato>Raiz.Informacion) 
-                 { 
-                     if(Raiz.NodoDerecho==null) 
-                     { 
-                         NodoT NuevoNodo=new NodoT(); 
-                         NuevoNodo.Informacion=Dato; 
-                         Raiz.NodoDerecho=NuevoNodo; 
-                     } 
-                     else 
-                     { 
-                         //Llamada recursiva por el lado derecho 
-                         Insertar(Raiz.NodoDerecho, Dato); 
-                     } 
-                 } 
-                 else 
-                 { 
-                     //El Nodo existe en el Arbol 
-                     Console.WriteLine("Nodo Existente, Imposible Insertar..."); 
-                     Console.ReadLine(); 
-                 } 
-             } 
-         } 
-         //Metodo de recorrido en Pre-Orden 
-         static void RecorridoPreorden(NodoT Raiz) 
-         { 
-             if(Raiz!=null) 
-             { 
-                 Console.Write("{0}, ",Raiz.Informacion); 
-                 RecorridoPreorden(Raiz.NodoIzquierdo); 
-                 RecorridoPreorden(Raiz.NodoDerecho); 
-             } 
-         } 
-         //Metodo de recorrido en In-Orden 
-         static void RecorridoInorden(NodoT Raiz) 
-         { 
-             if(Raiz!=null) 
-             { 
-                 RecorridoInorden(Raiz.NodoIzquierdo); 
-                 Console.Write("{0}, ",Raiz.Informacion);                 
-                 RecorridoInorden(Raiz.NodoDerecho); 
-             } 
-         } 
-         //Metodo de recorrido en Post-Orden 
-         static void RecorridoPostorden(NodoT Raiz) 
-         { 
-             if(Raiz!=null) 
-             { 
-                 RecorridoPostorden(Raiz.NodoIzquierdo);                              
-                 RecorridoPostorden(Raiz.NodoDerecho); 
-                 Console.Write("{0}, ",Raiz.Informacion); 
-             } 
-         } 
-         //Metodo de Buscar un nodo 
-         static void BuscarNodo(NodoT Raiz, int Dato) 
-         { 
-             if(Dato<Raiz.Informacion) 
-             { 
-                 //Buscar por el Sub-Arbol izquierdo 
-                 if(Raiz.NodoIzquierdo==null) 
-                 { 
-                     Console.WriteLine("ERROR, No se encuentra el Nodo..."); 
-                     Console.ReadLine(); 
-                 } 
-                 else 
-                 { 
-                     BuscarNodo(Raiz.NodoIzquierdo, Dato); 
-                 } 
-             } 
-             else 
-             { 
-                 if(Dato>Raiz.Informacion) 
-                 { 
-                     //Buscar por el Sub-Arbol derecho 
-                     if(Raiz.NodoDerecho==null) 
-                     { 
-                         Console.WriteLine("ERROR, No se encuentra el Nodo..."); 
-                         Console.ReadLine(); 
-                     } 
-                     else 
-                     { 
-                         BuscarNodo(Raiz.NodoDerecho, Dato); 
-                     } 
-                 } 
-                 else 
-                 { 
-                     //El nodo se encontro 
-                     Console.WriteLine("Nodo Localizado en el Arbol..."); 
-                     Console.ReadLine(); 
-                 } 
-             } 
-         } 
-         //Metodo de Eliminar 
-         static void EliminarNodo(ref NodoT Raiz, int Dato) 
-         { 
-             if(Raiz!=null) 
-             { 
-                 if(Dato<Raiz.Informacion) 
-                 { 
-                     EliminarNodo(ref Raiz.NodoIzquierdo, Dato); 
-                 } 
-                 else 
-                 { 
-                     if(Dato>Raiz.Informacion) 
-                     { 
-                         EliminarNodo(ref Raiz.NodoDerecho, Dato); 
-                     } 
-                     else 
-                     { 
-                         //Si lo Encontro 
-                         NodoT NodoEliminar=Raiz; 
-                         if(NodoEliminar.NodoDerecho==null) 
-                         { 
-                             Raiz=NodoEliminar.NodoIzquierdo; 
-                         } 
-                         else 
-                         { 
-                             if(NodoEliminar.NodoIzquierdo==null) 
-                             { 
-                                 Raiz=NodoEliminar.NodoDerecho; 
-                             } 
-                             else 
-                             { 
-                                 NodoT AuxiliarNodo=null; 
-                                 NodoT Auxiliar=Raiz.NodoIzquierdo; 
-                                 bool Bandera=false; 
-                                 while(Auxiliar.NodoDerecho!=null) 
-                                 { 
-                                     AuxiliarNodo=Auxiliar; 
-                                     Auxiliar=Auxiliar.NodoDerecho; 
-                                     Bandera=true; 
-                                 } 
-                                 Raiz.Informacion=Auxiliar.Informacion; 
-                                 NodoEliminar=Auxiliar; 
-                                 if(Bandera==true) 
-                                 { 
-                                     AuxiliarNodo.NodoDerecho=Auxiliar.NodoIzquierdo; 
-                                 } 
-                                 else 
-                                 { 
-                                     Raiz.NodoIzquierdo=Auxiliar.NodoIzquierdo; 
-                                 } 
-                             } 
-                         } 
-                     } 
-                 }                
-             } 
-             else 
-             { 
-                 Console.WriteLine("ERROR, EL Nodo no se Encuentra en el Arbol..."); 
-                 Console.ReadLine(); 
-             } 
-         } 
-         //Metodo de Finalizacion 
-         static void Finalizar() 
-         { 
-             Console.WriteLine("Fin del Programa, press any key to continue,..."); 
-             Console.ReadLine(); 
-         } 
-     } 
-