Colección de e-readers

Páginas: 5 (1152 palabras) Publicado: 21 de junio de 2011
Estructuras Dinámicas

Makarena Donoso Pavez 2011 - I

INF 154 Laboratorio de Programación

Listas Contiguas

INF 154

Laboratorio de Programación

Profesor. Makarena Donoso

1

Estructuras Dinámicas
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 posicionesadicionales 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)

INF 154

Laboratorio de ProgramaciónProfesor. Makarena Donoso

Listas
Una lista es una colección de elementos organizados en secuencia que puede crecer y decrecer libremente y a cuyos elementos individuales se puede acceder, insertar y eliminar en cualquier posición. Las listas se clasifican en contiguas, enlazadas, circulares y doblemente enlazadas.

INF 154

Laboratorio de Programación

Profesor. Makarena Donoso

2 Listas Contiguas
Los elementos de la lista se almacenan normalmente en posiciones consecutivas de memoria, es decir, almacenamiento secuencial, donde se define la constante longitud máxima (N), que determina el tamaño de la mayor lista que se puede tener Se implementan a través de arreglos, donde la inserción o eliminación de un elemento excepto en la cabecera o al final de la lista necesitará unatraslación de los elementos de la lista.
10
Índice 0

55
1

13
2

……..
…..

último elemento N-1

Lista

Espacio Libre
Límite superior

INF 154

Laboratorio de Programación

Profesor. Makarena Donoso

Listas Contiguas (2)
La declaración en C de una lista implementada por arreglos es la siguiente:

struct lista{ int elem[long_max]; int ultimo; }

ATENCIÓN: Estaimplementación guarda la posición (1..long_max) del ultimo elemento, y no su índice (0.. long_max-1).

INF 154

Laboratorio de Programación

Profesor. Makarena Donoso

3

Listas Contiguas (3)
Creación de lista contigua:
struct lista* Crear(){ struct lista* L = (struct lista*) malloc(sizeof(struct lista)); L-> ultimo=0; return L; }

ultimo
Posición 0 1 2 3 ….. long_max

……..
Índice 0 1 2….. long_max-1

Espacio Libre
INF 154 Laboratorio de Programación Profesor. Makarena Donoso

Listas Contiguas (4)
Inserción de una lista contigua:
struct lista* Insertar(int x, int pos, struct lista* L){ int q; if(L->ultimo>=long_max) printf(“lista llena”); else if((posL->ultimo)) printf(“posicion no existe”); else{ for (q=L->ultimo;q>=pos;q--) L->elem[q] = L->elem[q-1]; L->ultimo=L->ultimo+1;L->elem[q]=x; ultimo } return L; } pos 1 2 3 …..

long_max

10
Índice 0

55
1

13
2

……..
….. long_max-1

INF 154

Laboratorio de Programación

Profesor. Makarena Donoso

4

Listas Contiguas (5)
Eliminación de una lista contigua:
struct lista* Eliminar(int pos, struct lista* L){ if((posL->ultimo)) printf(“posicion no existe”); else{ L->ultimo=L->ultimo-1; for(q=pos;qultimo;q++) L->elem[q-1] = L->elem[q]; } return L; ultimo }
pos 1 2 3 ….. long_max

10
Índice 0

55
1

13
2

……..
….. long_max-1

INF 154

Laboratorio de Programación

Profesor. Makarena Donoso

Listas Contiguas (6)
Localización de un elemento en una lista contigua:
int Localizar(int x, struct lista* L){ int q; for (q=1;qultimo;q++){ if(L->elem[q-1]==x) return q; }/*elemento no encontrado*/ q=L->ultimo+1; return q;
}

ultimo
pos 1 2 3 ….. long_max

10
Índice 0

55
1

13
2

……..
….. long_max-1

INF 154

Laboratorio de Programación

Profesor. Makarena Donoso

5

Listas Enlazadas

INF 154

Laboratorio de Programación

Profesor. Makarena Donoso

Listas Enlazadas
Son mucho más flexibles que las listas contiguas, la inserción o...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • E readers
  • coleccion
  • Coleccion
  • el coleccionista
  • Coleccion
  • el coleccionista
  • coleccionista
  • Coleccion

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS