Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Realizado por
Asignatura: Programación II
Universidad de Córdoba
Ingeniería de sistemas
private Nodo siguiente; //Se declara un apuntador hacia delante del nodo.
private Nodo anterior; //y otro apuntador hacia atrás del nodo.
public Nodo() {
id = 0;
nombre = "";
sexo = "";
grado = 0;
edad = 0;
siguiente = null;
anterior = null;
return id;
id = ide;
nombre = nom;
return sexo;
sexo = sex;
return grado;
grado = grad;
return edad;
this.edad = edad;
public Nodo getSiguiente() {
return siguiente;
siguiente = sig;
return anterior;
anterior = ante;
private Nodo cabeza; //Se declara el atributo de la clase, cabeza primer nodo de la lista.
public TallerColegio2() {
cabeza = null;
//Implementación del método para obtener el primer nodo de la lista (nodo cabeza).
return cabeza;
//Implementación del método que asigna el primer nodo de la lista (nodo cabeza).
cabeza = cab;
if(temp.getSiguiente()==null){
break;
}else{
temp= temp.getSiguiente();
return temp;
//Este método devuelve el nodo que se encuentra antes (anterior) de un nodo pasado como
//parámetro. En este caso devuelve el nodo que esta antes del nodo a eliminar.
while(temp != null){
if(temp.getSiguiente()==nd){
break;
}else{
temp=temp.getSiguiente();
return temp;
//Método para agregar un nuevo nodo en la lista, por el final.
if(temp != null){
temp.setSiguiente(nuevo);
nuevo.setAnterior(temp);
nuevo.setSiguiente(null);
}else{
nuevo.setAnterior(null);
cabeza = nuevo;
//Método para agregar nodos entre dos nodos ya existentes en la lista enlazada doble.
nuevo.setSiguiente(nd.getSiguiente());
if(nd.getSiguiente() != null){
nd.getSiguiente().setAnterior(nuevo);
nd.setSiguiente(nuevo);
nuevo.setAnterior(nd);
if(cabeza==null){
cabeza = nuevo;
}else{ nuevo.setAnterior(null);
nuevo.setSiguiente(cabeza);
cabeza.setAnterior(nuevo);
cabeza = nuevo;
}
//Busca un nodo en la lista enlazada doble desde la cabeza (inicio) hasta el último nodo de la lista, //se
pasa como parámetro de búsqueda la identificación del estudiante.
while(temp != null){
if(temp.getId()==id){
break;
}else{
temp=temp.getSiguiente();
return temp;
//Busca un nodo en la lista enlazada doble desde el final hasta el inicio del nodo de la lista,
while(temp != null){
if(temp.getNombre().equals(nombre)){
break;
}else{
temp=temp.getAnterior();
return temp;
}
Nodo ante;
if(nd==cabeza){ //En caso de que el nodo a eliminar sea el primer nodo de la lista doble
cabeza=cabeza.getSiguiente();
if (cabeza != null){
cabeza.setAnterior(null);
}else{ //De lo contrario, se busca el nodo anterior al que se quiere eliminar (nd)
ante=anterior(nd);
ante.setSiguiente(nd.getSiguiente());
if(nd.getSiguiente() != null){
nd.getSiguiente().setAnterior(ante);
} nd.setAnterior(null);
nd.setSiguiente(null);
//Método que muestra los estudiantes de mayor edad de la lista enlazada doble.
int cont=0;
byte edad;
while(temp != null){
edad=temp.getEdad();
if(edad>mayor ){
mayor=edad;
if (edad == temp.getEdad()){
temp=temp.getSiguiente();
return mostrar;
int contar = 0;
while(temp != null){
contar++;
temp=temp.getSiguiente();
return contar;
int cantidad = 0;
float suma = 0;
Nodo temp = cabeza;
while(temp != null){
cantidad++;
suma=suma+temp.getEdad();
temp=temp.getSiguiente();
if(cantidad >0){
return suma/cantidad;
}else{
return 0;
}
}
//Método que cuenta los estudiantes hombres de grado 1 de la lista enlazada doble.
int contar = 0;
while(temp != null){
contar++;
temp=temp.getSiguiente();
return contar;
}
//Método que cuenta las estudiantes mujeres de grado 1 de la lista enlazada doble.
int contar = 0;
while(temp != null){
contar++;
temp=temp.getAnterior();
return contar;
//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.
int id;
String nombre,sexo;
byte grado,edad;
nod.setId(id);
nod.setNombre(nombre);
nod.setGrado(grado);
nod.setEdad(edad);
//Método para obtener y mostrar los valores asignados a los atributos de la clase Nodo.
String datosNodo="";
//Método para obtener y mostrar los valores asignados a los atributos identificación y nombre de la
clase Nodo.
String datosNodo="";
//Método para obtener y mostrar los valores asignados a los atributos nombre de la clase Nodo.
String datosNodo="";
datosNodo= datosNodo+String.valueOf("NOMBRE: "+nod.getNombre()+"\n\n");
JOptionPane.showMessageDialog(null,"MUJERES QUE CURSAN QUINTO DE
PRIMARIA"+"\n"+datosNodo);
}
//Método para listar los estudiantes de grado 2 de la lista y visualizarlos en pantalla.
Nodo temp=nod;
while(temp!=null){
if(temp.getGrado() == 2){
mostrarGrados(temp);
else{
temp=temp.getSiguiente();
Nodo temp=nod;
while(temp!=null){
if(temp.getGrado() == 3){
mostrarGrados(temp);
}else{
temp=temp.getSiguiente();
}
//Método para listar los estudiantes de grado 4 de la lista y visualizarlos en pantalla.
Nodo temp=nod;
while(temp!=null){
if(temp.getGrado() == 4){
mostrarGrados(temp);
}else{
temp=temp.getSiguiente();
// Método que se puede utilizar para listar la información del grado 1 desde el final de la lista enlazada
doble.
public static void listarDesdeElFinalG1(Nodo nod){
while(temp != null){
if(temp.getGrado() == 1){
mostrarGrados(temp);
}else{
temp=temp.getAnterior();
// Método que se puede utilizar para listar la información del grado 1 desde el final de la lista enlazada
doble.
public static void listarDesdeElFinalG5(Nodo nod){
if(temp.getGrado() == 5){
mostrarGrados(temp);
}else{
temp=temp.getAnterior();
Nodo temp=nod;
while(temp!=null){
mostrarMujeresGrado5(temp);
temp=temp.getSiguiente();
int opcion = 0;
do{
return opcion;
}
//Método para visualizar el submenú de opciones y asignar la opción seleccionada.
int opcion = 0;
do{
return opcion;
int opcion = 0;
do{
return opcion;
int opcion = 0;
do{
int opcion,cod;
String nom;
Nodo aux;
do{
opcion = menu();
switch(opcion){
case 1:
do{
opcion = subMenu1();
switch(opcion){
case 1:
aux = new Nodo();//Cuando se agrega un nodo se crea un nuevo objeto de la clase nodo.
llenar(aux);
if(aux.getEdad()>5){
if(aux.getGrado()<6){
if((aux.getSexo().equalsIgnoreCase("f")) || (aux.getSexo().equalsIgnoreCase("m"))){
cod = aux.getId();
if(lis.buscarPorId(cod) != null){
}else{
lis.agregarPorElFinal(aux);
}
}else{
}else{
JOptionPane.showMessageDialog(null,"El grado del estudiante debe estar entre 1° y
5°");
}else{
break;
case 2:
Nodo nd = lis.buscarPorId(cod);
if(nd!=null){
llenar(aux);
if(aux.getEdad()>5){
if(aux.getGrado()<6){
if((aux.getSexo().equalsIgnoreCase("f")) ||
(aux.getSexo().equalsIgnoreCase("m"))){
cod = aux.getId();
if(lis.buscarPorId(cod) != null){
}else{
JOptionPane.showMessageDialog(null,"Informacion registrada exitosamente");
lis.agregarEntreNodos(nd, aux);
}else{
JOptionPane.showMessageDialog(null,"El sexo del estudiante debe ser M o
F");
}else{
}else{
}else{
break;
case 3:
llenar(aux);
if(aux.getEdad()>5){
if(aux.getGrado()<6){
if((aux.getSexo().equalsIgnoreCase("f")) || (aux.getSexo().equalsIgnoreCase("m"))){
cod = aux.getId();
if(lis.buscarPorId(cod) != null){
JOptionPane.showMessageDialog(null,"Este estudiante ya se encuentra registrado");
}else{
lis.agregarCabeza(aux);
}else{
}else{
}else{
break;
case 4:
aux= lis.buscarPorId(cod);
if(aux != null){
mostrar(aux);
}else{
break;
case 5:
aux= lis.buscarPorNombre(nom);
if(aux != null){
mostrar(aux);
}else{
break;
case 6:
aux = lis.buscarPorId(cod);
if(aux != null){
}else{
lis.eliminar(aux);
}else{
break;
case 7:
break;
case 2:
do{
opcion = subMenu2();
switch(opcion){
case 1:
if(lis.getCabeza() != null){
}else{
break;
case 2:
if(lis.getCabeza() != null){
listarMujeresGrado5(lis.getCabeza());
}else{
break;
case 3:
case 4:
do{
opcion = subMenu3();
switch(opcion){
case 1:
if(lis.ultimo() != null){
listarDesdeElFinalG1(lis.ultimo());
}else{
break;
case 2:
if(lis.getCabeza() != null){
listarG2(lis.getCabeza());
}else{
break;
case 3:
if(lis.getCabeza() != null){
listarG3(lis.getCabeza());
}else{
break;
case 4:
if(lis.getCabeza() != null){
listarG4(lis.getCabeza());
}else{
break;
case 5:
if(lis.ultimo() != null){
listarDesdeElFinalG5(lis.ultimo());
}else{
break;
case 6:
break;
}
}
}
}
while(opcion != 5);
break;
case 3:
break;
}
}
while(opcion != 3);
}
}
Menú de opción principal de la aplicación en ejecución: