Representación y manipulación de estructuras lineales dinámicas; tablas de dispersión Reservación dinámica de arreglos ✓ Iniciamos con un arreglo de un tamaño moderado C ✓ Llenamos desde la primera celda disponible ✓ Cuando más de S % de las celdas han sido ocupadas, se duplica el tamaño ✓ Si la tasa de ocupación baja debajo de I %, se elimina la mitad de las celdas ✓ En realidad uno reserva un arreglo nuevo de otro tamaño y copía los contenidos ... ... ... O(1) } O(S· n) O(I· n) Listas (dinámicas por diseño) Creamos el primer elemento Enlazamos otro elemento enfrente También podemos enlazar atrás También podemos eliminar Implementación de listas ! A base de punteros ! Hay que mantener un puntero al primer elemento ! Cada elemento contiene, en adición a su dato, un puntero a su seguidor ! Al añadir un elemento, se modifica el puntero del elemento después del cual se está insertando para que apunte al elemento nuevo ! Si hay elementos después del elemento insertado, primero hay que ajustar su puntero a enlazarse con su seguidor
4
Embed
Representación y manipulación de estructuras lineales ... · de estructuras lineales dinámicas; tablas de dispersión Reservación dinámica de arreglos Iniciamos con un arreglo
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Representación y manipulación de estructuras lineales dinámicas;
tablas de dispersión
Reservación dinámica de arreglos
✓ Iniciamos con un arreglo de un tamaño moderado C
✓ Llenamos desde la primera celda disponible
✓ Cuando más de S % de las celdas han sido ocupadas, se duplica el tamaño
✓ Si la tasa de ocupación baja debajo de I %, se elimina la mitad de las celdas
✓ En realidad uno reserva un arreglo nuevo de otro tamaño y copía los contenidos
...
...
...
O(1)}O(S · n)
O(I · n)
Listas (dinámicas por diseño)
Creamos el primer elemento
Enlazamos otro elemento enfrente
También podemos enlazar atrás
También podemos eliminar
Implementación de listas
! A base de punteros
! Hay que mantener un puntero al primer elemento
! Cada elemento contiene, en adición a su dato, un puntero a su seguidor
! Al añadir un elemento, se modifica el puntero del elemento después del cual se está insertando para que apunte al elemento nuevo
! Si hay elementos después del elemento insertado, primero hay que ajustar su puntero a enlazarse con su seguidor
Pseudocógicos
<estructura> elemento { elemento* siguiente = NULL; int dato;}