Algoritmos

Solo disponible en BuenasTareas
  • Páginas : 11 (2616 palabras )
  • Descarga(s) : 0
  • Publicado : 9 de septiembre de 2012
Leer documento completo
Vista previa del texto
Estructuras de Datos Dinámicas

Programación Modular
Curso 2002-2003

David Bueno Vallejo

ÍNDICE

I.1.

INTRODUCCION A LAS ESTRUCTURAS DE DATOS DINÁMICAS............................................1

I.2.

EL TIPO PUNTERO...................................................................................................................................3

I .2.1. OPERACIONES CONPUNTEROS.............................................................................................................. 6
DESREFERENCIACIÓN.............................................................................................................................. 7
ASIGNACIÓN YCOMPARACIÓN.............................................................................................................. 7
PASO DE PUNTEROS COMO PARÁMETROS .......................................................................................... 8

I.3.

APLICACIÓN: LISTAS ENLAZADAS..................................................................................................8

I .3.1. OPERACIONES BASICAS SOBRE LISTAS ENLAZADAS........................................................................... 9
INSERTAR UN NODO AL PRINCIPIO .................................................................................................... 10
ELIMINAR EL PRIMER NODO. .............................................................................................................. 11
INSERTAR UN NODO EN UNA LISTA ENLAZADA ORDENADA ........................................................ 12
ELIMINARUN NODO DE UNA LISTA ENLAZADA.............................................................................. 14

Estructuras de Datos Dinámicas

I.1.

1

INTRODUCCION A LAS ESTRUCTURAS DE DATOS DINÁMICAS

Hasta ahora, todos los tipos de datos que se han visto, ya sean simples o estructurados,
tienen una propiedad común: son estáticos . Esto significa que las variables que se declaranen un programa de alguno de estos tipos mantendrán la misma estructura durante la
ejecución del mismo. Son variables estáticas , se definen en tiempo de compilación.
Ejemplos:
o Si se declara una variable entera, real, etc, puede cambiar su contenido, pero no el
tamaño asignado por el compilador para ella.
o Si se declara un Array de 5 elementos de tipo Z, éste podrá cambiar su contenido,pero no su estructura.
Sin embargo, hay muchas situaciones en las que no sólo debe cambiar el contenido o valor
de una variable, sino también su tamaño. Esto es, hay situaciones en las que en tiempo de
compilación no se puede determinar la cantidad de memoria necesaria para almacenar
cierta información, sino que hay que esperar al tiempo de ejecución.
La técnica usada para manejar estassituaciones es la asignación dinámica de memoria.
Con este tipo de asignación se tendrán variables dinámicas o referenciadas (ya se verá el
motivo por el que se denominan de esta segunda forma), que pueden crearse y destruirse
en tiempo de ejecución.
Ejemplo: Si se pide diseñar un programa para gestionar una agenda de teléfonos con los
datos de personas (nombre, apellidos, dirección, cumpleaños,teléfono, email, etc...). ¿Qué
estructura puede utilizarse para realizarla?
Con los conocimientos adquiridos hasta este tema, parece razonable utilizar un array de
personas. Una posible definición sería:
Constantes
MAXAG = 50
Tipos
REGISTRO TPersona
TCadena nombre, apellidos, dirección, email
Fecha cumpleaños
N telefono
TPersona TAgenda[1..MAXAG]
Variables
TipoAgenda ag

Si se usaun array de caracteres de MAXAG posiciones pueden aparecer los siguientes
problemas:
1. ¿Qué pasa si se quieren insertar más personas de MAXAG en la agenda?
? Hay que recompilar el programa para ampliar MAXAG
2. Si el número de personas de la agenda es mucho menor que MAXAG se está
desperdiciando memoria que podría ser utilizada por otros programas

Estructuras de Datos Dinámicas

2...
tracking img