Listas Enlazadas en Archivos

download Listas Enlazadas en Archivos

of 13

description

Trabajo sobre manipulación de archivos con listas enlazadas

Transcript of Listas Enlazadas en Archivos

UNIVERSIDAD NACIONAL DE TRUJILLO FACULTAD DE CIENCIAS FSICAS Y MATEMTICAS ESCUELA DE INFORMTICA

ORGANIZACIN DE ARCHIVOS LISTAS ENLAZADAS

AUTORES: Alfaro Alonso Elvis Prncipe Orbegozo Luis Rodrguez Cosavalente Jham

Trujillo - Per 2011

1

Manipulacin de archivos con listas enlazadasRecordando: Listas Enlazadas Una lista es una estructura de datos que nos permite agrupar elementos de una manera organizada. Las listas estn compuestas por nodos, estos nodos tienen un dato o valor y un puntero a otro(s) nodo(s). Una lista enlazada tiene un conjunto de nodos, los cuales almacenan 2 tipos de informacin: El dato que contienen y un puntero al siguiente nodo en la lista. El ltimo nodo de la lista tiene como siguiente nodo el valor NULL. Entonces las listas enlazadas simples solo pueden ser recorridas en una direccin, apuntando al nodo siguiente, mas no a un nodo anterior. Ejemplo:9-> 5-> 3-> 8-> 1-> NULL

Grficamente:

Obviamente, internamente no existen las palabras nodo, dato, direccin y siguiente, es solo una representacin. Como una lista es una estructura de datos dinmica, el tamao de la misma puede cambiar durante la ejecucin del programa. Definicin Lista Simple - Dinmica Es una secuencia de 0 o ms elementos de un tipo de dato determinado, formando un grupo unidos por una ligadura entre los diferentes elementos (llamados ahora Nodos); esto da lugar a la existencia de dos sub-elementos en el Nodo que son: dato (elemento dato) y ligadura (referencia), usando dinmicamente la memoria.

2

La lista consta de una coleccin de nodos situados en la memoria dinmica conectados entre s. Cada Nodo Cada nodo se compone de un dato y una referencia al siguiente nodo de la lista. El ltimo nodo de la lista contiene una referencia siguiente NULL.

Cmo aplicar Listas Enlazadas en Archivos?

Archivo desordenado

Reporte deseado: listado en orden por nombre

3

Para reportar ordenadamente se debe:

La solucin anterior tiene un defecto, si el archivo es grande, la complejidad computacional aumenta:

NRS n=NRS

4

Aplicamos Lista enlazada:

Recordando como ingresamos elementos en Listas Enlazadas: a) Ingresamos al final de la Lista

b) Ingresamos al inicio de la Lista

5

c) Ingresamos en un cualquier lugar de la Lista

Pensando en archivos insertamos registros: I(P), I(K), I(B), I(M). I(P): I(K):

I(B):

I(M):

6

En un archivo se pueden tener varias Listas: Que ordenan por Nombre Que ordenan por Apellido Que ordenan Descendentemente Ejemplo:

Ejemplo de implementacin de archivos con listas enlazadas:

7

Implementacin en lenguaje C++: #include #include #include #include #include using namespace std; struct encabezado{ int PR; int NRS; }e; struct registro{ int NR; char nom[10]; int edad; int SR; }r,a,s; void escribir(){ system("cls"); char nomarch[10]; int fd,rpta=1,le,lr,x,band,pos; le=sizeof(struct encabezado); lr=sizeof(struct registro); cout