public class Lista { private Nodo inicio; private Nodo fin; public Lista() { inicio=fin=null; } public boolean esVacio(){ return inicio==fin && fin==null; } public void insertarOrdenado(int dato) { if (!esVacio()) { Nodo nuevo; if (dato < inicio.getDato()) { nuevo = new Nodo(null, inicio, dato); inicio.setAnterior(nuevo); inicio = nuevo; } else { Nodo aux = inicio; while (aux != null && dato > aux.getDato()) { aux = aux.getSiguiente(); } if (aux != null) { nuevo = new Nodo(aux.getAnterior(), aux, dato); aux.getAnterior().setSiguiente(nuevo); aux.setAnterior(nuevo); } else { nuevo = new Nodo(fin, null, dato); fin.setSiguiente(nuevo); fin = nuevo; } } } else { Nodo nuevo = new Nodo(null, null, dato); inicio = fin = nuevo; } } public void imprimir(){ Nodo aux= inicio; while(aux != null){ System.out.println(aux.getDato()); aux= aux.getSiguiente(); } } }
data structures site, Sitio donde publicaré mis avances de estructuras de datos, colas, pilas, alboles, grafos, tree, stack, queue, graph, también la programación en java, novedades, ejercicios que he desarrollado.
Búsqueda por palabras claves
No se olviden de consultar por palabras claves!
Ejemplo de Estructura de datos en java, tutorial de estructura de datos
Búsqueda personalizada
martes, 20 de noviembre de 2018
Ordenar a medida que vamos insertando datos en una estructura de datos tipo lista doblemente enlazada
Ejercicio en java de estructuras de datos
Ordenar a medida que vamos insertando datos en una estructura de datos tipo lista doblemente enlazada
Se crea un método insertar que recibe un parámetro que corresponde con el dato del nodo a instar en la Lista, según las condiciones se insertará el nuevo nodo en el inicio, en el centro de la lista o en el final.
viernes, 12 de mayo de 2017
Colas con prioridad ejemplo java
En este ejericio vamos a desarrollar en el lenguaje java un ejercicio que permita insertar datos en una cola con prioridad, para ello debemos crear 3 clases; la primera será la clase nodo la cual va tener 3 atributos, la segunda clase será clase Lista, la misma que tendrá el método para insertar datos según la prioridad que le corresponda en la lista. y finalmente la clase que realizará la invocación, instanciando los objetos necesarios para que funcione nuestro ejemplo de colas con prioridad.
En un proyecto de java crear una nueva Clase con nombre Nodo
Sobre el mismo paquete del proyecto crear una nueva Clase con nombre ListaSimple
Sobre el mismo paquete del proyecto crear una nueva Clase con nombre
La ejecución del programa la podemos ver en la siguiente imagen!
En un proyecto de java crear una nueva Clase con nombre Nodo
package colasprioridad; /** * * @author paulo.guerra.teran */ public class Nodo { private int valor; // Atributo para enlazar los nodos. private Nodo siguiente; int prioridad; Nodo(int valor, int prioridad) { this.valor=valor; this.prioridad=prioridad; } Nodo() { } public void Nodo(){ this.valor = 0; this.siguiente = null; } public int getValor() { return valor; } public void setValor(int valor) { this.valor = valor; } public Nodo getSiguiente() { return siguiente; } public void setSiguiente(Nodo siguiente) { this.siguiente = siguiente; } @Override public String toString() { return "Nodo{" + "valor=" + valor + ", prioridad=" + prioridad + '}'; } }
Sobre el mismo paquete del proyecto crear una nueva Clase con nombre ListaSimple
package colasprioridad; /** * * @author paulo.guerra.teran */ public class ListaSimple { private Nodo inicio; // Puntero que indica el final de la lista o el ultimo nodo. private Nodo ultimo; public void Lista() { inicio = null; ultimo = null; } public void agregar(int valor, int prioridad) { Nodo nuevo = new Nodo(valor, prioridad); if (inicio == null) { inicio = ultimo = nuevo; } else { if (inicio.prioridad > prioridad) { nuevo.setSiguiente(inicio); inicio=nuevo; }else{ Nodo ant=null; Nodo sig=inicio; while(sig!=null && prioridad>=sig.prioridad){ ant=sig; sig=sig.getSiguiente(); } nuevo.setSiguiente(sig); ant.setSiguiente(nuevo); if(sig==null){ ultimo=nuevo; } } } } void imprimir() { Nodo aux = inicio; do { System.out.println("" + aux); aux = aux.getSiguiente(); } while (aux != null); } }
Sobre el mismo paquete del proyecto crear una nueva Clase con nombre
package listacircular; /** * * @author paulo.guerra.teran */ public class ColaPrioridad { public static void main(String[] args) { ListaSimple ls=new ListaSimple(); System.out.println("Agrego nodo (100) cualquier prioridad (2)"); ls.agregar(100, 2); System.out.println("Agrego nodo (200) prioridad igual al primer nodo (2)"); ls.agregar(200, 2); ls.imprimir(); System.out.println("Agrego nodo (300) prioridad 1"); ls.agregar(300, 1); ls.imprimir(); System.out.println("Agrego nodo (400) de prioridad final"); ls.agregar(400, 3); ls.imprimir(); } }
La ejecución del programa la podemos ver en la siguiente imagen!
Suscribirse a:
Entradas (Atom)