La clase nodo define la estructura de un nodo al incluir los atributos Dato y Liga, y los constructores para inicializarlos. La clase ListaSimple maneja una lista simple enlazada mediante el uso de objetos nodo, incluyendo métodos para crearla, insertar y eliminar nodos, y recorrerla para mostrar sus elementos.
3. Pedagogía de la Educación: Como objeto de la didáctica.ppsx
Algoritmo de listas simples completo
1. 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
2. // Clase para manejar la lista
publico clase ListaSimple
Inicio
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
3. //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
4. // 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
5. // 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
6. //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
7. //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