Está en la página 1de 6

//NODO using System; namespace deber1 { public class Nodo { private string Nombre; public Nodo sig; public

Nodo (string nombre) { this.Nombre = nombre;this.sig = null;} public void Mostrar() { Console.WriteLine("Nombre :{0}", this.Nombre);} public string NOMBRE { get {return (Nombre);} set { Nombre=value; } } } } //LISTA using System; namespace deber1 { class Lista { Nodo primero, ultimo; public Lista() { primero=ultimo=null; } public void Ingresar() { string nom; 1

Console.Clear(); Console.WriteLine("Ingrese datos "); Console.WriteLine("****************"); Console.WriteLine("Ingrese nombre"); nom = Console.ReadLine(); Nodo i= new Nodo(nom); Insertar(i); } public void Mostrar() { Nodo i; if (primero!= null) { i=primero; while (i!=null) { i.Mostrar(); i=i.sig; } } else { Console.WriteLine("lista vacia"); } Console.ReadLine(); } public Nodo Buscar(string b) { Nodo i; i = primero; while (i!=null) { if (i.NOMBRE==b) return (i); else i = i.sig; } return(null); } 2

public bool Eliminar() { string busca; Nodo padre,hijo; Console.Write("Ingrese nombre del empleado a eliminar: "); busca = Console.ReadLine(); padre = Eliminar(busca); if (padre == ultimo) return (false); if (padre == null) { hijo=primero; primero=hijo.sig; } else { hijo=padre.sig; padre.sig=hijo.sig; } if (hijo == ultimo) ultimo=padre; hijo = null; return(true); } public Nodo Eliminar(string b) { Nodo i, p; i = primero; p = null; while (i!= null) { if(i.NOMBRE==b) break; else { p = i; i = i.sig; } } 3

return(p); } private void Insertar(Nodo i) { if (primero == null) primero = i; else ultimo.sig = i; ultimo =i; } public void Modificar(string b) { Nodo i; i = primero; while (i!=null) { if (i.NOMBRE==b) { string nuevovalor; Console.Write("Ingrese valor a modificar: "); nuevovalor= Console.ReadLine(); Nodo j= new Nodo(nuevovalor); i.NOMBRE=j.NOMBRE; } else i = i.sig; } } } }

//MAIN using System; namespace deber1 { class Program { 4

public static void Main(string[] args) { int op; string busca; Nodo v; Lista m = new Lista(); do { Console.Clear(); Console.WriteLine("\tLISTAS ENLAZADAS\n"); Console.WriteLine("**********************"); Console.WriteLine("* 1. Ingresar "); Console.WriteLine("* 2. Mostrar "); Console.WriteLine("* 3. Buscar "); Console.WriteLine("* 4. Eliminar"); Console.WriteLine("* 5. Modificar"); Console.WriteLine("* 6. Recorrer un Dato"); Console.WriteLine("* 7. Salir "); Console.WriteLine("**********************"); Console.WriteLine("\n::::::::::::::::"); Console.WriteLine(":Ingrese Opcion: "); Console.WriteLine("::::::::::::::::"); op = int.Parse(Console.ReadLine()); switch (op) { case 1: m.Ingresar(); break; case 2: Console.Clear(); m.Mostrar(); break; case 3: Console.Clear(); Console.Write("Ingrese valor valor a buscar: "); busca=Console.ReadLine(); v=m.Buscar(busca); if (v==null) Console.WriteLine("No existe el empleado"); else 5

{ Console.WriteLine("Nodo encontrado"); v.Mostrar(); } Console.ReadLine(); break; case 4: Console.Clear(); m.Mostrar(); if(m.Eliminar()) Console.WriteLine("Nodo Eliminado..."); else Console.WriteLine("Nodo no encontrado..."); Console.ReadLine(); break; case 5: Console.Clear(); Console.Write("Ingrese valor valor a buscar: "); busca=Console.ReadLine(); m.Modificar(busca); break; case 6: Console.Clear(); break; default: Console.WriteLine("Proceso Terminado..."); break; } } while ((op>0)&&(op<7)); Console.Write("Press any key to continue . . . "); Console.ReadKey(true); } } }