













Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Listas dinamicas en programacion de objetos
Tipo: Diapositivas
1 / 21
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!














P R O G R A M A C I Ó N I E S C U E L A P R O F E S I O N A L D E I N G E N I E R Í A E N C O M P U T A C I Ó N E I N F O R M Á T C A C A S I A N O Z A M B R A N O , J U L I Á N G A B R I E L G A R C Í A C H I N C H A Y , L E O N A R D O S M I T H
INTRODUCCIÓN Una lista lineal enlazada es un conjunto de elementos u objetos de cualquier tipo, originariamente vacía que, durante la ejecución del programa va creciendo o decreciendo elemento a elemento según las necesidades previstas. En una lista lineal cada elemento apunta al siguiente, es decir, cada elemento tiene información de dónde está el siguiente. Por este motivo también se le llama lista dinámica.
O B J E T I V O S D E L T E M A C A R A C T E R Í S T I C A S O P E R A C I O N E S B Á S I C A S C R E A R L I S T A A Ñ A D I R O I N S E R T A R E L E M E N T O S L O C A L I Z A R E L E M E N T O S B O R R A R E L E M E N T O S O R D E N A R U N A L I S T A E J E R C I C I O P R O P U E S T O
A. B. C. D. E.
1. DEFINICIÓN Una estructura de datos dinámica es aquella en la que el tamaño ocupado en memoria puede modificarse durante la ejecución del programa. De esta manera se pueden adquirir posiciones adicionales de memoria a medida que se necesiten durante la ejecución del programa y liberarlas cuando no se necesiten. Las variables que se crean y están disponibles durante la ejecución del programa se llaman variables continuas. Las estructuras de datos dinámicas se clasifican en lineales (listas, pilas y colas) y no lineales (árboles y grafos).
3. Características
La forma en que se encadenan los elementos (esto es, la forma en que se identifican el predecesor y sucesor de un elemento). Para ello se suelen utilizar los punteros. Cómo y dónde se pueden insertar y eliminar sus elementos. El número de predecesores y sucesores de cada elemento.
A ) C R E A R L I S T A B ) A Ñ A D I R O I N S E R T A R E L E M E N T O S C ) L O C A L I Z A R E L E M E N T O S
D ) B O R R A R E L E M E N T O S E ) O R D E N A R U N A L I S T A
elemento *nuevo_elemento(void) { elemento *q; q = (elemento *) malloc(sizeof(elemento)); if (! q) perror (“No se ha reservado memoria para el nuevo nodo”); return q; //devuelve la direcc. de memoria reservada } La función principal tomará la forma: int main () { elemento *q; //puntero a un nodo q = NULL; //lista vacía //Reserva dinámica de memoria q = nuevo_elemento (); //q apunta al nodo recién creado q->sig = NULL; //fin de lista //operaciones... //Liberación de memoria reservada free(q);
**B. Añadir o Insertar Elementos
Insertar un elemento en una lista vacía:** Equivale a crear una lista, partiendo del nodo listo a insertar (creado en la llamada a la función nuevo_elemento () ) y, por supuesto un () que apunte a él, además el () a la lista valdrá NULL. > Insertar un elemento en la primera posición de una lista:
> Insertar un elemento en la última posición de una lista: Necesitamos un puntero que señale al último elemento de la lista. Empezando por el primero y avanzar hasta que el nodo que tenga como siguiente el valor NULL (es decir, el último). Hacer que nodo->siguiente sea NULL. Hacer que ultimo->siguiente sea nodo.
D. Borrar Elementos
Borrar todos los elementos de una lista equivale a liberar la memoria reservada para cada uno de los elementos de la misma. Si el primer nodo está apuntado por c, empleamos el puntero auxiliar q: q = c; //salvamos el puntero a la lista while (q! = NULL) { c = c->sig; free(q); q = c; } Hay que observar que antes de borrar el elemento apuntado por q, hacemos que c apunte al siguiente elemento ya que si no perdemos el resto de la lista.
E. Ordenar una lista
Supongamos que queremos construir una lista para almacenar números enteros, pero de modo que siempre esté ordenada de menor a mayor. Para hacer la prueba añadiremos los valores 20, 10, 40, 30. De este modo tendremos todos los casos posibles. Al comenzar, el primer elemento se introducirá en una lista vacía, el segundo se insertará en la primera posición, el tercero en la última, y el último en una posición intermedia. Insertar un elemento en una lista vacía es equivalente a insertarlo en la primera posición. De modo que no incluiremos una función para asignar un elemento en una lista vacía, y haremos que la función para insertar en la primera posición nos sirva para ese caso también
CONCLUSIONES La Programación Orientada a Objetos es actualmente el paradigma que más se utiliza para diseñar aplicaciones y programas informáticos. Son muchas sus ventajas, principalmente cuando necesitas resolver desafíos de programación complejos. Permite una mejor estructura de datos y reutilización del código, lo que facilita el ahorro de tiempo a largo plazo. Eso sí, para ello se requiere pensar bien en la estructura del programa, planificar al comienzo de la codificación, así como analizar los requisitos en clases simples y reutilizables que se pueden usar para diseñar instancias de objetos.
ANEXOS
ANEXOS
BIBLIOGRAFÍA
https://www.uv.mx/personal/ermeneses/files/2021/08/Clase5- ListasEnlazadasFinal.pdf
http://zeus.inf.ucv.cl/~rsoto/cursos/INF245/Cap2_Parte1_6ppt_INF245.p df
https://fdoperez.webs.ull.es/doc/matematicas8.pdf http://www.javalist.epizy.com/listas-dinamicas/concepto/ https://fundamentospoorrr.blogspot.com/2017/05/listas-definicion.html