Algoritmo de listas simples completo

8
Para definir la estructura de un nodo es necesario definir una clase que contenga los atributos y métodos necesarios para la declaración e instanciación de un nodo. // Clase que define el nodo clase nodo Inicio Entero Dato; nodo Liga; // el campo nodo que permite el direccionamiento, se define como tipo nodo que en este caso es el nombre de la clase // Se definen constructores para inicializar la estructura // Constructor vacio para nodo publico nodo() Inicio Fin // Se define constructor que introduzca el valor del nodo por medio de parametro publico nodo(EnteroDato) Inicio nodo.Dato=Dato; nodo.Liga=null; Fin //En caso de ser necesario se define constructor con dato para el nodo y dirección para ligar a otro nodo cuando se realice instancia con este constructor publico nodo (Entero Dato, nodo Liga) Inicio nodo.Dato=Dato; nodo.Liga=Liga; Fin Fin // Fin de la clase que define la estructura de nodo

Transcript of Algoritmo de listas simples completo

Page 1: Algoritmo de listas simples  completo

Para definir la estructura de un nodo es necesario definir una clase que contenga los atributos y métodos necesarios para la declaración e instanciación de un nodo.

// Clase que define el nodoclase nodoInicio

Entero Dato; nodo Liga; // el campo nodo que permite el direccionamiento, se define como tipo nodo que en este caso es el nombre de la clase // Se definen constructores para inicializar la estructura // Constructor vacio para nodo publico nodo() Inicio Fin // Se define constructor que introduzca el valor del nodo por medio de parametro publico nodo(EnteroDato) Inicio nodo.Dato=Dato; nodo.Liga=null; Fin

//En caso de ser necesario se define constructor con dato para el nodo y dirección para ligar a otro nodo cuando se realice instancia con este constructor publico nodo (Entero Dato, nodo Liga) Inicio nodo.Dato=Dato; nodo.Liga=Liga; Fin

Fin// Fin de la clase que define la estructura de nodo

Page 2: Algoritmo de listas simples  completo

// Clase para manejar la listapublico clase ListaSimpleInicio nodo PrimerNodo;// se define el primer nodo de la lista nodo Q,T; // Se definen nodos aucxiliares

//Constructores para la lista // COnstructor vacio publico ListaSimple() Inicio Fin

//COnstructor para iniciar la lista publico ListaSimple(EnteroDato) // el valor que se captura en menu para el primer nodo Inicio

PrimerNodo=new nodo(Dato);PrimerNodo.Liga=null;

Fin // Metodo para determinar lista vacia publico boolean ListaVacia() Inicio

retornar PrimerNodo ==null;// si el primer nodo apunta a null esta vacia Fin

//Metodo para determinar si hay un nodo en la lista publico boolean unico() Inicio

si (PrimerNodo.Liga==null) retornar verdadero; sino retornar falso; fin si

Fin

Page 3: Algoritmo de listas simples  completo

//Metodo para rrecorer y mostrar elementos de la lista publico recorrido() Inicio si (!ListaVacia()) Inicio Q= PrimerNodo; Mientras que (Q != null) Inicio Escriba(""+Q.Dato); Q=Q.Liga; Fin Fin else Escriba("En estos momentos no hay lista creada"); Fin // Metodo para insertar al final de la lista publico insertarFinal(Entero dato) Inicio Si (!ListaVacia()) Inicio Q = new nodo(dato); Si (unico()) Inicio PrimerNodo.Liga=Q; Q.Liga=null; Fin else Inicio Q=PrimerNodo; Mientras que (Q.Liga != null) Inicio Q=Q.Liga; Fin nodo Nuevo= new nodo(dato); Nuevo.Liga=null; Q.Liga=Nuevo; Q=Nuevo; Fin Fin else Inicio PrimerNodo= new nodo(dato); PrimerNodo.Liga=null; Fin Fin

Page 4: Algoritmo de listas simples  completo

// Metodo para insertar al inicio de la Lista publico InsertarInicio(Entero dato) Inicio Si (!ListaVacia()) Inicio Q = new nodo(dato); Q.Liga=PrimerNodo; PrimerNodo=Q; Fin else Inicio PrimerNodo= new nodo(dato); PrimerNodo.Liga=null; Fin Fin // Metodo para insertar al final de la Lista publico insertardespues(nodo liga, Entero valor) Inicio Si (ListaVacia()) Inicio Escriba("Esta operacion requiere minimo un elemento en la lista "); Fin sino Inicio Q=PrimerNodo; Mientras que (Q != liga) Inicio Q=Q.Liga; Fin nodo Nuevo = new nodo(valor); Nuevo.Liga=Q.Liga; Q.Liga=Nuevo; Fin Fin

Page 5: Algoritmo de listas simples  completo

// Metodo para insertar al final de la Lista publico void InsertarAntes(nodo liga, Enterovalor) Inicio Si (ListaVacia()) Inicio Escriba("Esta operación requiere mínimo un elemento en la lista "); Fin sino Inicio Q=PrimerNodo; Mientras que (Q.Liga != liga) Inicio Q=Q.Liga; Fin nodo Nuevo = new nodo(valor); Nuevo.Liga=Q.Liga; Q.Liga=Nuevo; Fin Fin // Metodo para Eliminar al inicio de la Lista Publico EliminarInicio() Inicio Si (!ListaVacia()) Inicio Si (unico()) Inicio PrimerNodo=null; Escriba("Se ha eliminado el ultimo nodo"); Fin Sino Inicio Q=PrimerNodo; PrimerNodo=Q.Liga; Fin Fin sino Escriba("La lista esta vacia no hay nodos que eliminar"); Fin

Page 6: Algoritmo de listas simples  completo

//Metodo para eliminar al final de la lista publico EliminarFinal() Inicio Si (!ListaVacia()) Inicio Si (unico()) Inicio PrimerNodo=null; Escriba("Se ha eliminado el ultimo nodo"); Fin else Inicio Q=PrimerNodo; T = new nodo(); Mientras que (Q!= null) Inicio T=Q; Q=Q.Liga; Fin T.Liga=null; Fin Fin sino Escriba("La lista esta vacía no hay nodos que eliminar"); Fin

Page 7: Algoritmo de listas simples  completo

//Metodo para buscar un elemento dentro de la lista, el método devuelve la dirección donde se encontró el dato publico nodo Buscar(Enterodato) Inicio Enteroc=1; boolean SW= false; T= new nodo(); Q= new nodo(); Q= PrimerNodo; Mientras que ((Q != null)&&(SW==false)) Inicio Si (Q.Dato == dato) Inicio Escriba("Se encontro en"+c); SW=true; retornar Q; Fin sino Inicio c++; Q=Q.Liga; Fin Fin

retornar null; Fin //Fin de la clase