Algoritmos II - Unidad 1 - Estructuras Dinámicas de Datos PDF
Document Details
Uploaded by RiskFreeFourier
Universidad de la Costa
2024
Oscar Javier Ramírez Vargas
Tags
Related
- Diagramas de Flujo PDF
- Análisis de Complejidad Algorítmica - Estructura de Datos y Algoritmos - PDF
- Algoritmos II - Unidad 1 - Estructuras Dinámicas de Datos PDF
- Algoritmos II - Unidad 1 - Estructuras Dinámicas de Datos - CUC Universidad de LaCosta - PDF
- Teoría de la Programación 1 PDF
- Clases de Algoritmos y Estructuras de Datos - Clase 6 PDF
Summary
Estos apuntes presentan una introducción a las estructuras de datos dinámicas, incluyendo listas enlazadas simples. Las notas cubren conceptos como la asignación dinámica de memoria, la flexibilidad y las características de estas estructuras de datos utilizadas en programación, con ejemplos de implementación en Python.
Full Transcript
ALGORITMOS II UNIDAD No. 1 Estructuras Dinámicas de Datos Ingeniería de Sistemas Ing. Oscar Javier Ramírez Vargas Sábado 10 d...
ALGORITMOS II UNIDAD No. 1 Estructuras Dinámicas de Datos Ingeniería de Sistemas Ing. Oscar Javier Ramírez Vargas Sábado 10 de agosto de 2024 Introducción a las Estructuras Datos Una estructura de datos es una forma organizada y específica de almacenar, organizar y manipular datos en un programa de computadora. Define la manera en que los datos son almacenados, organizados y accedidos en la memoria de la computadora, permitiendo realizar operaciones sobre ellos de manera eficiente. Las estructuras de datos pueden variar en complejidad y funcionalidad, y se utilizan en el desarrollo de software para resolver diferentes problemas y realizar diversas operaciones. Algunos ejemplos comunes de estructuras de datos incluyen arrays, listas enlazadas, pilas, colas, árboles y grafos. Estructuras Dinámicas de Datos Las estructuras dinámicas de datos son entidades organizativas utilizadas en programación para almacenar y organizar datos de manera eficiente, permitiendo la manipulación y acceso dinámico a la información durante la ejecución del programa. A diferencia de las estructuras estáticas de datos, como arrays y matrices, las estructuras dinámicas pueden cambiar de tamaño y forma en tiempo de ejecución, lo que las hace altamente flexibles y adaptables a las necesidades del programa. Características de las Estructuras Dinámicas de Datos Las estructuras dinámicas La memoria para almacenar Las estructuras dinámicas pueden crecer o reducir su datos en estructuras son altamente flexibles y tamaño según sea necesario dinámicas se asigna pueden adaptarse fácilmente durante la ejecución del dinámicamente en tiempo a cambios en la cantidad o programa. de ejecución, lo que permite tipo de datos que se una gestión eficiente de los manejan. recursos. Asignación Tamaño Variable Dinámica de Flexibilidad Memoria Al permitir la inserción, eliminación y modificación de datos de manera dinámica, las estructuras dinámicas pueden ser más complejas de implementar y manejar que las estructuras estáticas. Mayor Complejidad Listas Enlazadas Simples y sus Subtipos Las listas enlazadas simples son una estructura de datos fundamental en programación que permite almacenar y organizar elementos de manera secuencial. En una lista enlazada simple, cada elemento, también conocido como nodo, contiene un valor y un enlace (o puntero) que apunta al siguiente nodo en la lista. Este enlace crea una conexión entre los nodos, permitiendo recorrer la lista de manera eficiente. Listas Enlazadas Simples y sus Subtipos En una lista enlazada, el primer nodo se llama "cabeza" o "cabecera", y el último nodo tiene un puntero nulo que indica el final de la lista. Cada nodo contiene al menos dos campos de datos: uno para almacenar el valor del elemento y otro para almacenar la dirección de memoria del siguiente nodo en la lista. Listas Enlazadas Simples y sus Subtipos Este enfoque de enlace permite almacenar y manipular datos de manera dinámica, ya que los nodos pueden ser añadidos o eliminados de la lista de manera flexible, sin la necesidad de tener un tamaño fijo predefinido. Además, las listas enlazadas pueden crecer o reducirse en tamaño según sea necesario durante la ejecución del programa. Listas Enlazadas Simples y sus Subtipos Las listas enlazadas pueden ser simples, doblemente enlazadas o circulares, dependiendo de la forma en que los nodos están enlazados entre sí. En una lista enlazada simple, cada nodo tiene un único puntero que apunta al siguiente nodo en la lista. En una lista doblemente enlazada, cada nodo tiene dos punteros: uno que apunta al nodo siguiente y otro que apunta al nodo anterior. En una lista circular, el último nodo apunta de nuevo al primer nodo, formando un bucle. Características de las Listas Enlazadas Simples Cada nodo de la lista enlazada simple contiene un valor y un puntero al siguiente nodo en la lista. La lista comienza con un nodo inicial, llamado nodo cabeza o cabecera. El último nodo de la lista tiene un puntero nulo, indicando el final de la lista. Las operaciones básicas en una lista enlazada simple incluyen la inserción, eliminación y búsqueda de elementos. Creación de una Lista Enlazada Simple Inicio Estructura Nodo: dato siguiente Función crearNodo(valor): nodo = Nuevo Nodo nodo.dato = valor nodo.siguiente = Nulo retornar nodo Función agregarAlFinal(lista, valor): nuevoNodo = crearNodo(valor) si lista es vacía: lista = nuevoNodo sino: nodoActual = lista mientras nodoActual.siguiente no sea Nulo: nodoActual = nodoActual.siguiente nodoActual.siguiente = nuevoNodo retornar lista Fin Ejercicio práctico en clases Escribe un programa en Python que permita a un usuario crear una lista enlazada simple y luego realizar algunas operaciones básicas como insertar elementos y mostrar el contenido de la lista.