static void Main(string[] args) { int w = 0; while (w == 0) { Console.WriteLine("Ingrese el tipo de su arbol generico"); string tipo = Console.ReadLine(); Console.WriteLine("Ingrese el obj de su nodo"); string obj = Console.ReadLine(); Console.WriteLine("Ingrese el padre de su nodo"); string padre = Console.ReadLine(); Console.WriteLine("Ingrese si lo quiere a la izquierda (0) o derecha (1) de este"); int posicion = Convert.ToInt32(Console.ReadLine()); ArbolBinario <string> t = new ArbolBinario <string>(); t.Insertar(obj, padre, posicion); } }
public static void Main(string[] args) { // No es necesario hacerlo de la siguiente manera, pero // así nos ahorramos de crear los nodos desde la A a la H Dictionary <char, Nodo <string> > nodos = new Dictionary <char, Nodo <string> >(); foreach (char letra in "ABCDEFGHI") { nodos[letra] = new Nodo <string>(letra.ToString()); } // Ya tenemos creados los nodos de la A a la H, ahora armamos el arbol de la imagen ArbolBinario <string> arbolBinario = new ArbolBinario <string> { raiz = nodos['F'] }; nodos['F'].hijoIzquierdo = nodos['B']; nodos['F'].hijoDerecho = nodos['G']; nodos['B'].hijoIzquierdo = nodos['A']; nodos['B'].hijoDerecho = nodos['D']; nodos['D'].hijoIzquierdo = nodos['C']; nodos['D'].hijoDerecho = nodos['E']; nodos['G'].hijoDerecho = nodos['I']; nodos['I'].hijoIzquierdo = nodos['H']; // Implementamos un pequeño programa en consola para ir viendo cada nodo Nodo <string> nodoActual = arbolBinario.raiz; string opcion; // Configuración consola Console.BackgroundColor = ConsoleColor.Black; Console.ForegroundColor = ConsoleColor.White; do { MostrarNodo(nodoActual); Console.WriteLine("\n¿Cuál nodo quieres visitar ahora?"); Console.WriteLine("[1] Izquierdo"); Console.WriteLine("[2] Derecho"); Console.WriteLine("[3] Padre\n"); opcion = Console.ReadLine(); Nodo <string> nuevoNodo = null; switch (opcion) { case "1": nuevoNodo = nodoActual.hijoIzquierdo; break; case "2": nuevoNodo = nodoActual.hijoIzquierdo; break; case "3": nuevoNodo = nodoActual.padre; break; default: break; } if (nuevoNodo == null) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("\nEl nodo seleccionado no existe\n"); Console.ForegroundColor = ConsoleColor.White; Console.Beep(); } else { nodoActual = nuevoNodo; } } while (opcion != "0"); }