package pryarboles; /** * * @author cisco */ public class Arbol { private Nodo raiz; public Arbol() { raiz = null; } public void insertar(int dato, Nodo actual) { if (actual == null) { raiz = new Nodo(dato); } else { if (dato < actual.getDato()) { if (actual.getIzquieda() == null) { Nodo nuevo = new Nodo(dato); actual.setIzquieda(nuevo); } else { actual = actual.getIzquieda(); insertar(dato, actual); } } else { if (actual.getDerecha() == null) { Nodo nuevo = new Nodo(dato); actual.setDerecha(nuevo); } else { insertar(dato, actual.getDerecha()); } } } } public void insertar(int dato) { insertar(dato, raiz); } public int imprimirPreOrden(Nodo actual, int n, int mayor) { if (actual != null) { // System.out.println(actual.getDato() + " " + n); if(n>mayor) mayor=n; int a=imprimirPreOrden(actual.getIzquieda(), n + 1, mayor); int b=imprimirPreOrden(actual.getDerecha(), n + 1, mayor); if (a > b ) { return a; } return b; } return mayor; } public void imprimirPreOrden() { System.out.println(imprimirPreOrden(raiz, 1, 0)); } }
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
jueves, 20 de junio de 2019
Determinar el altitud del arbol java con recursividad, niveles del arbol con recursividad.
/*
* 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.
*/
jueves, 23 de mayo de 2019
hilos en java, ejercicio listas circulares, insetar nodos en listas doblemente enlazadas
Se desea crear una lista circular con números perfectos utilizando hilos
package prylistascircular; /** * * @author laboratorio */ public class Nodo { private int dato; private Nodo anterior; private Nodo siguiente; public Nodo(int dato, Nodo anterior, Nodo siguiente) { this.dato = dato; this.anterior = anterior; this.siguiente = siguiente; } public int getDato() { return dato; } public void setDato(int dato) { this.dato = dato; } public Nodo getAnterior() { return anterior; } public void setAnterior(Nodo anterior) { this.anterior = anterior; } public Nodo getSiguiente() { return siguiente; } public void setSiguiente(Nodo siguiente) { this.siguiente = siguiente; } }
package prylistascircular; /** * * @author laboratorio */ public class Circular { private Nodo inicio; private Nodo fin; public Circular() { inicio = fin = null; } public boolean esVacia() { return inicio == null && fin == null; } public void insertarInicio(int dato) { Nodo nuevo = new Nodo(dato, fin, inicio); if (esVacia()) { inicio = fin = nuevo; } else { inicio.setAnterior(nuevo); fin.setSiguiente(nuevo); inicio = nuevo; } } public void insertarFin(int dato) { Nodo nuevo = new Nodo(dato, fin, inicio); if (esVacia()) { inicio = fin = nuevo; } else { inicio.setAnterior(nuevo); fin.setSiguiente(nuevo); fin = nuevo; } } public void imprimir() { Nodo aux = inicio; do { System.out.println(aux.getDato()); aux = aux.getSiguiente(); } while (aux != inicio); } }
package prylistascircular; /** * * @author laboratorio */ public class Hilo implements Runnable { private Circular lista; private int min; private int max; public Hilo(Circular lista, int min, int max) { this.lista = lista; this.min = min; this.max = max; } @Override public void run() { for (int i = min; i < max; i++) { int acum = 0; for (int j = 1; j <= i / 2; j++) { if (i % j == 0) { acum += j; } } if (acum == i) { lista.insertarFin(i); System.out.println("Inserto; " + i); } } } }
package prylistascircular; /** * * @author laboratorio */ public class PryListasCircular { /** * @param args the command line arguments */ public static void main(String[] args) throws InterruptedException { // TODO code application logic here Circular lista = new Circular(); Hilo h1 = new Hilo(lista, 1, 1000); h1.run(); Hilo h2 = new Hilo(lista, 8000, 9000); h2.run(); Hilo h3 = new Hilo(lista, 33550030, 33551000); h3.run(); h1.join(); h2.join(); h3.join(); lista.imprimir(); } }
Suscribirse a:
Entradas (Atom)