Estructura De Datos En Java Joyanes Full
These are "restricted" lists.
Para que tu aprendizaje o implementación sea realmente "full" (completa), debes internalizar estos principios joyanianos:
Para evitar que un árbol se degrade a una lista enlazada, los AVL rotan sus nodos para mantener altura logarítmica.
El ArrayList es una implementación de array redimensionable. Cuando se llena, crea un nuevo array con una capacidad 1.5 veces mayor. estructura de datos en java joyanes full
import java.util.ArrayList;public class EjemploJoyanes public static void main(String[] args) // Capacidad inicial sugerida: 100 para evitar redimensiones ArrayList<String> nombres = new ArrayList<>(100);
nombres.add("Ana"); nombres.add("Luis"); nombres.add(1, "Carlos"); // Inserta en posición 1 System.out.println("Tamaño real: " + nombres.size()); // 3 System.out.println("Capacidad interna: " + nombres); // [Ana, Carlos, Luis]
Clave Joyanes: "El ArrayList es el comodín de las listas, pero su costo de inserción en medio de la lista es O(n). Si necesita inserciones rápidas, use LinkedList."
A hierarchical data structure.
Un mapa es una estructura de datos que almacena pares de claves y valores. These are "restricted" lists
import java.util.HashMap;
import java.util.Map;
Map<String, Integer> miMapa = new HashMap<>();
miMapa.put("Apple", 10);
miMapa.put("Banana", 20);
Estructuras de datos avanzadas en Java
Joyanes recomienda usar Deque sobre Stack por eficiencia.
import java.util.ArrayDeque; import java.util.Deque;public class PilaJoyanes public static void main(String[] args) Deque<Integer> pila = new ArrayDeque<>(); Queues (Colas): FIFO (First In, First Out)
// Push (apilar) pila.push(10); pila.push(20); pila.push(30); // Pop (desapilar) System.out.println("Sacando: " + pila.pop()); // 30 System.out.println("Tope actual: " + pila.peek()); // 20 (sin remover) // Aplicación real: Invertir una cadena String texto = "JOYANES"; Deque<Character> pilaTexto = new ArrayDeque<>(); for (char c : texto.toCharArray()) pilaTexto.push(c); StringBuilder invertido = new StringBuilder(); while (!pilaTexto.isEmpty()) invertido.append(pilaTexto.pop()); System.out.println(invertido); // "SENAYOJ"