Secuenciales
Pila y Cola: orden de salida. Listas: enlaces y posiciones. Prioridad: menor número primero; Sublista: padres e hijos.
Guía de secuenciales
Aprende estructuras de datos con operaciones reales y visualización interactiva.
Prueba una operación, observa qué cambia y relaciona el dibujo con el código C. No necesitas entender todos los paneles desde el primer día.
Reto: descubrir por qué una pila se llama «último en entrar, primero en salir».
10, 20, 30 y revisa el orden. Pulsa Cargar valores.Comprueba lo aprendido: ¿qué cambiaría si usaras una Cola? Allí saldría primero 10. Ahora compara la pila con una cola y descubre las demás estructuras lineales. Abrir guía de estructuras secuenciales.
La cabecera compacta deja más espacio para la práctica. En la vista de clase, el gráfico y el C aparecen juntos; en pantallas estrechas se reorganizan. Cada panel puede tener su propio desplazamiento.
En Comprender, empieza por las tres pistas del paso: qué ocurre, qué cambia y qué debes comprobar. Abre la referencia completa o los detalles avanzados sólo cuando necesites profundizar.
Prepara datos y ejecuta sin Paso a paso. Obtienes el resultado final; es útil para construir ejemplos y comprobar una respuesta.
Actívalo antes de ejecutar. Paso 0 es el estado inicial. Usa Paso anterior y Siguiente paso, o los controles de reproducción y pausa disponibles.
La línea C resaltada acaba de ejecutarse y el dibujo muestra su efecto. Una condición o un retorno pueden no cambiar ningún nodo: eso también es un paso válido.
Disponible en Pila, Cola, Lista enlazada, Lista circular, ABB, AVL, Rojo-Negro y Montículo binario. En las listas agrega al final. No está disponible para Grafos, Hash, Cola de prioridad ni Sublista; Ordenamiento conserva su propia entrada de arreglo.
8, -3, 12. Se permiten espacios y signos; no decimales, posiciones vacías ni una coma final. Rango: −2147483648 a 2147483647.Al terminar o detener un lote, edita la lista antes de iniciar otro. La vista previa conserva el orden solicitado; el resumen describe ese lote, no sustituye el estado actual tras otra operación o Restablecer TAD.
Detener lote conserva las operaciones ya aceptadas, incluida la actual, y descarta los valores pendientes. No es «deshacer todo». Si falla una operación durante el proceso, las anteriores no se revierten. Si la respuesta es incierta, usa Recargar estado e historial y comprueba qué se guardó antes de volver a cargar valores.
printf.El código actual, el main del historial y la estructura del TAD conservan sus líneas e indentación. Si una línea no cabe, usa la barra horizontal del propio panel; el desplazamiento vertical es independiente. También funciona en Ampliar. Avanzar pasos no centra el código horizontalmente ni cambia el texto de Copiar C.
Copiar C copia el texto fuente sin los números visuales de línea; Copiar salida copia la consola. Ampliar abre el contenido para leerlo con más espacio; Cerrar ampliación vuelve a la vista sin ejecutar otra operación.
.c y .h completos. No son un programa principal.Pila y Cola: orden de salida. Listas: enlaces y posiciones. Prioridad: menor número primero; Sublista: padres e hijos.
Guía de secuencialesCompara un ABB con AVL y Rojo-Negro. Observa cómo las rotaciones mantienen el orden. El Montículo mínimo prioriza la raíz, no ordena todo el arreglo.
Guía de árboles y montículoConstruye vértices y aristas; después elige recorridos, caminos mínimos o expansión mínima. Comienza con 3 o 4 vértices.
Guía de grafosRelaciona clave, índice y colisión. La tabla encadena las colisiones y mantiene su capacidad; actualizar una clave no agrega otra entrada.
Guía de hashPrueba 4, 1, 3, 2 y compara dos de los once métodos con la misma entrada. No confundas comparación con intercambio.
Prueba 100%, luego + o −. Desplázate dentro del dibujo. Encajar vista conserva legibilidad y puede dejar contenido fuera del área visible; no elimina nodos. Cierra los detalles de memoria para recuperar espacio.
Puede que estés al final o hayas ejecutado en modo normal. Para una operación nueva, activa Paso a paso antes de ejecutarla. En un lote, al final de la traza usa Siguiente valor; no esperes que Reproducir agregue todos los pendientes.
Usa enteros separados por comas, por ejemplo -2, 0, 7. Quita comas dobles o finales, letras y decimales. Revisa la posición indicada y no superes 50 valores. En ABB, AVL y Rojo-Negro elimina los duplicados del lote o ya presentes en el árbol. No se envía ningún valor hasta validar toda la lista.
Es lo esperado: Detener lote no deshace operaciones aceptadas. Conserva la actual y las anteriores; descarta las pendientes. Si una petición tiene resultado incierto, usa Recargar estado e historial antes de seguir: reenviar a ciegas podría duplicar una inserción.
Muchas funciones C no imprimen. Revisa el resultado de la operación, no sólo la consola. Corrige el dato indicado; un error de entrada no equivale a una ejecución exitosa. Un error detectado dentro del algoritmo puede tener pasos que expliquen su causa.
La vista admite hasta 15 vértices. La traza tiene un presupuesto de 4.000 eventos C y del llamador, más la publicación final: si lo supera se rechaza la preparación, no se entrega una traza cortada. Reduce el ejemplo o usa modo normal para obtener el resultado completo sin guardar esa traza extensa.
Dijkstra requiere pesos no negativos, incluso en componentes desconectadas. Bellman-Ford permite negativos pero informa ciclos negativos alcanzables. Prim y Kruskal necesitan grafo no dirigido, conexiones simétricas y conectividad: un grafo desconectado no produce un bosque exitoso. Revisa aristas y vértice inicial antes de repetir.
No significa que estén vacíos. Los historiales de grafos de una versión anterior se conservan sin reinterpretarse; expórtalos antes de confirmar Restablecer datos. En Hash ocurre también con sesiones que superan el límite visual de 128 buckets. No se recortan silenciosamente.
Ordenamiento admite entre 1 y 80 enteros de 32 bits. Counting y Binsort requieren además que máximo − mínimo + 1 sea como máximo 1.000.000. Es el rango de valores, no la cantidad de elementos. Reduce el rango o elige otro método.
El navegador puede limitar el portapapeles. Selecciona el texto y cópialo manualmente, o usa la descarga de fuente en Ayuda. Para compilar, no copies los números de línea de la presentación.
Los archivos del TAD no incluyen un programa principal: guarda tu programa en main.c y compílalo junto con el C descargado. Usa el encabezado correspondiente para comprobar las firmas y los tipos de retorno.
Counting y Binsort limitan el rango inclusivo con ORDENAMIENTO_RANGO_MAX, cuyo valor es 1.000.000. Binsort delega en Counting Sort; hereda sus límites de rango y reservas. Un método con retorno de estado distingue ORDENAMIENTO_OK de ORDENAMIENTO_ERROR; no sustituyas esa comprobación por asumir que el arreglo ya está ordenado.
Los valores del árbol Rojo-Negro deben estar entre -2147483648 y 2147483647, sin truncar. Al terminar el programa, el llamador libera su árbol con rbt_liberar(arbol); arbol = NULL;; la consulta o la copia de un puntero no transfieren esa propiedad.
Usa los atajos fuera de los campos de entrada y con una traza preparada. Durante Agregar varios, utiliza sus propios botones.
Un TAD es un tipo de dato con sus operaciones; una invariante es una regla que debe conservar al terminar correctamente. Durante una inserción o rotación puedes ver enlaces transitorios: no juzgues el resultado antes de terminar.
Los identificadores de memoria del dibujo son simbólicos, no direcciones reales. Un campo indeterminado no es lo mismo que NULL. Tras free, el registro histórico ayuda a explicar lo ocurrido, pero no convierte el puntero liberado en uno utilizable. Copiar un puntero tampoco crea una copia independiente del objeto.
El C de grafos de esta versión sigue el código del libro. GrafoEstado explica si una operación terminó bien o por qué falló: OK, MEMORIA, NO_EXISTE, PESO_NEGATIVO, CICLO_NEGATIVO, DESCONECTADO, ARGUMENTO o RANGO.
No decidas el éxito sólo por un puntero NULL: un camino de un vértice a sí mismo puede no tener arcos y ser correcto. Las distancias usan long long y una marca de alcanzable; INT_MAX no significa infinito. Identificadores y pesos son enteros de 32 bits; 2.0 se normaliza a 2, pero 2.5 no se acepta. Eliminar un vértice libera sus arcos incidentes dentro del propio C.
Descarga tad_pila.c y tad_pila.h desde Ayuda de Pila. Guarda este ejemplo como main.c en la misma carpeta:
#include <stdio.h>
#include "tad_pila.h"
int main(void) {
ptrPila pila = NULL;
pila_apilar(&pila, 10);
pila_apilar(&pila, 20);
pila_apilar(&pila, 30);
if (pila != NULL) {
printf("Sale: %d\n", pila_desapilar(&pila));
}
pila_destruir(&pila);
return 0;
}
Con un compilador GCC disponible: gcc -std=c17 -Wall -Wextra main.c tad_pila.c -o ejemplo. Ejecuta ./ejemplo (o .\ejemplo.exe en Windows). Con reservas correctas imprime Sale: 30. El printf pertenece a este main; no es una impresión inventada de pila_desapilar.
El main de tu historial permite reproducir tu propia práctica. Cada TAD tiene sus firmas y reglas de memoria: usa sus encabezados, no cambies nombres para hacerlos parecer iguales.