






Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
La implementación de una clase nodo que representa un nodo de una lista enlazada en java. La clase nodo tiene atributos como código, nombre, tres notas y un puntero al siguiente nodo. Se incluyen métodos para agregar, eliminar, buscar y ordenar los nodos de la lista, así como para calcular el promedio general y la nota máxima. También se implementa una clase main que permite interactuar con la lista a través de un menú de opciones. Este documento podría ser útil para estudiantes de programación que deseen aprender sobre la implementación de estructuras de datos como listas enlazadas en java.
Tipo: Apuntes
1 / 11
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!







codigo = nd.getCodigo(); nombre = nd.getNombre(); nota1 = nd.getNota1(); nota2 = nd.getNota2(); nota3 = nd.getNota3(); } }
public class ListaEnlazada { private Nodo cabeza; //Se declara el atributo de la clase, cabeza primer nodo de la lista. //Método constructor de la clase ListaEnlazada. public ListaEnlazada(){ cabeza = null; //Inicialmente la lista está vacía, la cabeza apunta a nulo. } //Implementación del método que asigna el primer nodo de la lista (nodo cabeza). public void setCabeza(Nodo cab){ cabeza = cab; } //Implementación del método para obtener el primer nodo de la lista (nodo cabeza). public Nodo getCabeza(){ return cabeza; } //Método que recorre la lista y devuelve el último nodo de la lista. public Nodo ultimo(){ Nodo temp = cabeza; while(temp != null){ //Si temp apunta a nulo el nodo temporal (temp) es el último de la lista. if(temp.getSiguiente() == null){ break; //Se rompe el ciclo. }else{ //De lo contrario se pasa al siguiente nodo de la lista. temp = temp.getSiguiente(); }
return temp; } //Método que recorre la lista para contar cuantos nodos hay almacenados. public int contarNodos(){ int contador = 0; Nodo temp = cabeza; while(temp != null){ contador++; temp = temp.getSiguiente(); } return contador; } //Método para agregar un nuevo nodo en la lista, por el final. public void agregar(Nodo nuevo){ if(cabeza == null){ //La lista está vacía, no hay nodos. setCabeza(nuevo); //Se asigna el primer nodo de la lista. }else{ ultimo().setSiguiente(nuevo); //El ultimo nodo apuntara al nuevo nodo que se agregó. } } //Implementación del método que busca un nodo dentro de la lista, pasando como parámetro de //búsqueda el código del estudiante. Nodo buscar(int cod){ Nodo temp = cabeza; while(temp != null){ if(temp.getCodigo() == cod){ break; }else{ temp = temp.getSiguiente(); } } return temp; } //Implementación del método que elimina el nodo de la lista pasado como parámetro (nd) el nodo //que se quiere eliminar. public void eliminar(Nodo nd){ Nodo anterior; if(nd == cabeza){ //Si el nodo a eliminar en la lista es el primero entonces. cabeza = cabeza.getSiguiente(); }else{ //De lo contrario, se busca el nodo anterior al que se quiere eliminar (nd). anterior = cabeza; while(anterior.getSiguiente() != nd){ anterior = anterior.getSiguiente(); } //El siguiente de anterior será el nodo que le sigue al que se va a eliminar (nd). anterior.setSiguiente(nd.getSiguiente()); } nd.setSiguiente(null); //El enlace del nodo a borrar, apuntara su siguiente a nulo. } //Implementación del método que calcula el promedio de todas las notas definitivas almacenadas //en la lista.
while(ni != null){ nj = ni.getSiguiente(); while(nj != null){ if(ni.definitiva() < nj.definitiva()){ cambiar(ni,nj); } nj = nj.getSiguiente(); } ni = ni.getSiguiente(); } } }
public class Main { //Se declaran los siguientes métodos, que serán llamados dentro del método static void main: //Método para asignar los valores a los atributos de la clase Nodo, aquí se crea una instancia por //parámetro de la clase Nodo llamada nod. public static void llenar(Nodo nod){ int cod = Integer.parseInt(JOptionPane.showInputDialog("Digite CODIGO del Estudiante: ")); nod.setCodigo(cod); String nom = JOptionPane.showInputDialog("Digite NOMBRE del Estudiante: "); nod.setNombre(nom); float n 1 = Float.parseFloat(JOptionPane.showInputDialog("Digite La NOTA 1 :")); nod.setNota 1 (n 1 ); float n2 = Float.parseFloat(JOptionPane.showInputDialog("Digite La NOTA 2 :")); nod.setNota 2 (n 2 ); float n 3 = Float.parseFloat(JOptionPane.showInputDialog("Digite La NOTA 3 :")); nod.setNota 3 (n 3 ); } //Método para obtener y mostrar los valores asignados a los atributos de la clase Nodo. public static void mostrar(Nodo nod){ String datosNodo = ""; datosNodo = datosNodo+String.valueOf(""+"CODIGO: "+nod.getCodigo()+"\n"+"NOMBRE: "+nod.getNombre()+"\n"+ "NOTA 1: "+nod.getNota1()+"\n"+"NOTA 2: "+nod.getNota2()+"\n"+"NOTA 3 : "+nod.getNota 3 ()+"\n"+ "Definitiva: "+nod.definitiva()+"\n \n"); JOptionPane.showMessageDialog(null, "=========== INFORMACÓN DE LOS NODOS DE LA LISTA =========== \n"+ datosNodo); } //Método para listar cada uno de los nodos de la lista y visualizarlos en pantalla. public static void listar(Nodo nod){ Nodo temp = nod; while(temp != null){
mostrar(temp); temp = temp.getSiguiente(); } } //Método para visualizar el menú de opciones y asignar la opción seleccionada. public static int menu() { int opcion = 0 ; do{ opcion = Integer.parseInt(JOptionPane.showInputDialog("=========== SELECCIONE UNA OPCIÓN DEL MENÚ =========== \n"+ " 1. Agregar un Nodo a la Lista \n"+" 2. Mostrar Nodos de la Lista \n"+ "3. Cantidad de Nodos de la Lista \n"+" 4. Buscar la Información de un estudiante \n"+ " 5. Eliminar Nodo de la Lista \n"+" 6. Informe: Promedio General y Máxima Nota \n"+ "7. Borrar toda la Lista \n"+"8. Agregar Entre Dos Nodos \n"+"9. Agregar un Nodo por la Cabeza \n"+" 10. Ordenar Por Nota Definitiva \n"+" 11. Salir"+"\n \n Seleccione una opción del 1 al 11 :")); }while(opcion <= 0 || opcion > 11 ); return opcion; } public static void main(String[] args) { ListaEnlazada lis = new ListaEnlazada(); //Se crea el objeto lis de la clase ListaEnlazada. int opcion, cod; Nodo aux; do{ opcion = menu(); switch(opcion) { case 1 : aux = new Nodo(); //Cuando se agrega un nodo se crea un nuevo objeto de la clase nodo. llenar(aux); lis.agregar(aux); break; case 2 : if(lis.getCabeza() != null){ listar(lis.getCabeza()); }else{ JOptionPane.showMessageDialog(null, "La Lista Está Vacía...."); } break; case 3 : JOptionPane.showMessageDialog(null, "========= NÚMERO DE NODOS DE LA LISTA =========\n"+lis.contarNodos()+ " Nodos"); break; case 4 : cod = Integer.parseInt(JOptionPane.showInputDialog("Digite CODIGO del Estudiante a Buscar: ")); aux = lis.buscar(cod); if(aux != null){ mostrar(aux); }else{ JOptionPane.showMessageDialog(null, "La información del estudiante No se encuentra en la lista"); } break;