Una pila es una estructura de datos en la cual podemos almacenar información para su posterior procesamientos, el acceso a sus elementos almacenados es de tipo LIFO (del inglés Last In, First Out, «último en entrar, primero en salir») lo que quiere decir que el ultimo elemento almacenado o apilado es el primer elemento en salir o en ser desapilado.
Para dar un ejemplo crearemos un proyecto java el cual permitirá haciendo uso de las Pilas almacenar (n) número de estudiantes los cuales tengan como atributos: (Código, Nombre y Edad), listarlos e imprimir la suma de todas las edades.
Para realizar este proyecto Crearemos las Clases Estudiante la cual permitirá crear objetos de tipo estudiante, la clase Nodo la cual almacenara objetos de tipo estudiante y la clase Pila la cual funcionara como estructura de datos almacenando los estudiantes u objetos de nodos creados:
Pilas en java
Para hacer uso de las pilas en java es necesario crear una clase nodo la cual representara cada elemento u objeto que ara parte de la pila, posteriormente crear una clase pila la cual permitirá unir cada uno de los nodos para permitir generar la estructura de datos y hacer diferentes procesos e interactuar con los elementos almacenados.Para dar un ejemplo crearemos un proyecto java el cual permitirá haciendo uso de las Pilas almacenar (n) número de estudiantes los cuales tengan como atributos: (Código, Nombre y Edad), listarlos e imprimir la suma de todas las edades.
Para realizar este proyecto Crearemos las Clases Estudiante la cual permitirá crear objetos de tipo estudiante, la clase Nodo la cual almacenara objetos de tipo estudiante y la clase Pila la cual funcionara como estructura de datos almacenando los estudiantes u objetos de nodos creados:
Clase Principal:
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package pilas; /** * * @author Usuario */ public class EjecutarPilas { /** * @param args the command line arguments */ public static void main(String[] args) { //Creamos una pila para almacenar los estudiantes Pila pilaDeEstudiantes = new Pila(); //Apilamos (agregamos) estudiantes en la pila pilaDeEstudiantes.apilar(new Estudiante(8234, "Mauricio", 20)); pilaDeEstudiantes.apilar(new Estudiante(8235, "Mariana", 20)); pilaDeEstudiantes.apilar(new Estudiante(8236, "Camila", 24)); //Imprimimos los estudiantes almacenados en la pila pilaDeEstudiantes.imprimir(); //Imprimimos la suma de de las edades de todos los estudiantes almacenados en la pila System.out.println("La suma de las edades es: " + pilaDeEstudiantes.sumaDeEdades()); } }
Clase Estudiante:
package pilas; /* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ /** * * @author Usuario */ public class Estudiante { //Atributos private int codigo; private String nombre; private int edad; //Constructores public Estudiante() { } public Estudiante(int codigo, String nombre, int edad) { this.codigo = codigo; this.nombre = nombre; this.edad = edad; } //Getters and Setters public int getCodigo() { return codigo; } public void setCodigo(int codigo) { this.codigo = codigo; } public String getNombre() { return nombre; } public void setNombre(String nombre) { this.nombre = nombre; } public int getEdad() { return edad; } public void setEdad(int edad) { this.edad = edad; } }
Clase Nodo:
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package pilas; /** * * @author Usuario */ public class Nodo { //Atributos private Estudiante datosEstudiante; private Nodo siguinte; //Constructor public Nodo(Estudiante datosEstudiante) { this.datosEstudiante = datosEstudiante; } //Getters and Setters public Estudiante getDato() { return datosEstudiante; } public void setDato(Estudiante datosEstudiante) { this.datosEstudiante = datosEstudiante; } public Nodo getSiguinte() { return siguinte; } public void setSiguinte(Nodo siguinte) { this.siguinte = siguinte; } }
Clase Pila:
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package pilas; /** * * @author Usuario */ public class Pila { Nodo raiz; //metodo para agregar un estudiante a la pila //si la pila esta vacia el estudiante seria la raiz de la pila //si la pila ya tiene estudiantes se establece como raiz al ultimo ingresado public void apilar(Estudiante datosEstudiante) { Nodo nuevo = new Nodo(datosEstudiante); if (raiz == null) { raiz = nuevo; } else { if (datosEstudiante != null) { nuevo.setSiguinte(raiz); raiz = nuevo; } } } //metodo para listar los estudiantes almacenados en la pila public void imprimir() { Nodo temp = raiz; while (temp != null) { System.out.print("Código: " + temp.getDato().getCodigo() + "\nNombre: " + temp.getDato().getNombre() + "\nEdad: " + temp.getDato().getEdad() + "\n\n"); temp = temp.getSiguinte(); } } //metodo para sumar las edades de todos los estudiantes almacenados en la pila public int sumaDeEdades() { Nodo temp = raiz; int suma = 0; while (temp != null) { suma += temp.getDato().getEdad(); temp = temp.getSiguinte(); } return suma; } }
Comentarios
Publicar un comentario