Está en la página 1de 3

using using using using using

System; System.Collections.Generic; System.Linq; System.Text; Libreria;

namespace listas { class Program { nodo LISTA = null; // el nodo llamado Lista se inicializa como valor nul o. static void Main(string[] args) { Program objeto_lista = new Program(); //Se crea el objeto con el nom bre "objeto_lista" imprime("Vamos a crear una lista de 10 numeros"); //Se visualiza en pantalla que el programan crear una lista con 10 elementos for (int i = 0; i < 10; i++) //Subndice de la lista, cuyo valor se in icializa con cero { Console.Write("{0})", i + 1); //Imprime en consola los nmeros objeto_lista.insertar_nodo(Numeros.Entero("Escriba un nmero") ); //Se pide el nmero el cual se ir guardando el la lista (hasta llegar a 10) } imprime("La lista es "); //Imprime la lista objeto_lista.recorrer_lista(); //Invoca al mtodo objeto_lista creado previamente. imprime("Vamos a buscar un nmero"); objeto_lista.buscar_nodo(Numeros.Entero("Escriba el nmero que desea b uscar en la lista")); //Invoca al mtodo buscar_nodo creado previamente. imprime("Vamos a eliminar un nodo"); objeto_lista.eliminar_nodo(Numeros.Entero("Escriba el nmero que desea eliminar de la lista")); //Invoca al mtodo eliminar_nodo creado previamente. imprime("La lista sin el nodo eliminado es "); objeto_lista.recorrer_lista(); //Invoca al mtodo recorrer_ lista crea do previamente. } void insertar_nodo(int N) //Mtodo permite aadir un nodo que an no existe. { nodo P = new nodo(); //Se crea el objeto nodo "P" P.n = N; //Se le asigna el valor de N al nodo P P.siguiente = LISTA; //Se asigna el valor de la lista al nodo siguie nte LISTA = P; //Lista toma el valor del nodo P } void recorrer_lista() //Mtodo que no retornar valor, sin parmetros nombrado "recorrer_lista", se encargar de recorrer los elemetos que se encuentran en la l ista. { nodo Q = LISTA; // Se asigna el valor de la lista al nodo Q while (Q != null) // mientras el nodo Q sea diferente de null (osea que si existan datos) {

Console.WriteLine(Q.n); //Imprime en consola el nodo Q Q = Q.siguiente; // Contina el recorrido } } void buscar_nodo(int N)//Mtodo que permite buscar un nodo que tenga asoci ados los datos. Tiene como parmetro el entero N. { nodo Q = LISTA; // Se le asigna el valor de la lista al nodo Q bool Ultimo = false; // Se crea la variable boleana ltimo inicializad a con falso while ((Q.n != N) && (Ultimo == false)) // mientras el el dato del n odo Q sea diferente de N y ha llegado al ltimo elemento { if (Q.siguiente == null) // Si el siguiente elemento del nodo Q no contiene dato Ultimo = true; //Se encontr el dato else Q = Q.siguiente; // Busca el dato siguiente del nodo Q } if (Ultimo == false) // Console.WriteLine("Se encontro el numero"); //Se visualiza en co nsola el mensaje else Console.WriteLine("No se encontro el numero"); //Sino se manda e l mensaje de no haber encontrado el dato. } void eliminar_nodo(int N) //Mtodo que permite eliminar un nodo. Con parmet ro entero N. { nodo Q = LISTA; //Se le asigna el valor Lista al nodo Q nodo T = null; //Se inicializa con valor nulo al nodo T bool Ultimo = false; //Se inicializa la variable boleana ltimo como f also while ((Q.n != N) && (Ultimo == false)) //Se crea el bucle "mientras " el nodo Q sea diferente a N y ltimo siga siendo falso. { if (Q.siguiente == null) //Si el siguiente elemento de Q sea nul o Ultimo = true; // La variable boleana se vuelve verdadera else //Sino { T = Q; // el nodo T toma el valor del nodo Q Q = Q.siguiente; //Contina con el nodo siguiente } } if (Ultimo == false) //Si la variable boleana es falsa { T.siguiente = Q.siguiente; //Sigue el recorrido del nodo T toman do el valor del nodo Q Console.WriteLine("Se encontro el numero y fue eliminado."); //S e manda el mensaje a consola que si se encontr y se elimin el dato } else Console.WriteLine("No se encontr el numero."); //Se manda el mens aje a consola para notificar que no se encontr el nmero especificado. } static void imprime(string cadena) //Mtodo esttico (no modificable) que se encargar de imprimir la cadena, tiene como parmetro la misma cadena. { Console.WriteLine(cadena); //Imprime en pantalla la cadena.

} } class nodo //Atributos de la clase nodo (ambas de acceso pblicas para poder s er usadas por los mtodos.) { public int n; public nodo siguiente; } }

También podría gustarte