MULTILISTAS


1. TDA FRENTE A ESTRUCTURA DE DATOS.


2. ENTIDADES Y RELACIONES.

Tipos de Relación:

Representación de relaciones muchos a muchos.


3. ESTRUCTURA DE DATOS MULTILISTA


4. IMPLEMENTACIÓN DE MULTILISTAS

Dados dos tipos de entidades, TipoA y TipoB, se necesitan:


5. CONSULTA SOBRE UNA ESTRUCTURA MULTILISTA.

Localizar todas las entidades de TipoA relacionadas con la entidad B de TipoB.

void BuscarEntidadesA (EntidadB B){

   NodoMultilista a, b, r;

   b = Direccion(B);
   /* Depende de como se agrupen los NodoTipoB. */
   r = b.cont.b.PrimerA;
   /* Mediante r se recorre el conjunto de entidades TipoA para B. */
   while (r.tipo == NODO_ML) {
	a = r;
   	do
   		a = a.cont.nr.SiguienteB;
   	while (a.tipo == NODO_ML)
   	Escribe(a.cont.a.Info);
   	r = r.cont.nr.SiguienteA;
   };
};






6. TDA RELACIÓN.

TDA Relacion: crear, añadeAlum, añadeAsig, borrarAlum, borrarAsig, añadir, borrar, existe, escribeAsig, escribeAlum, destruir.

Definición: Dados los TDAs Alumno y Asignatura, los objetos Relacion representan las relaciones (matrícula, calificación) entre un conjunto de Alumnos y un conjunto de Asignaturas.


OPERACIONES:



typedef void *pnodo;
   
typedef struct NodoTipoA {
	TipoA info;
   	pnodo *PrimerB;
} NodoTipoA;

typedef struct NodoTipoB {
 	TipoB info;
   	pnodo *PrimerA;
} NodoTipoB;

typedef struct NodoRel {
	pnodo SiguienteB;
   	pnodo SiguienteA;
} NodoRel;

typedef enum {NODO_A, NODO_B, NODO_REL} TipoNodo;

typedef struct nodo {
	TipoNodo tipo;
  	union {
   		NodoRel nr;
   		NodoTipoA na;
   		NodoTipoB nb;
   	} cont;
} nodo;




Tutor de Estructuras de Datos Interactivo
Exposito Lopez Daniel, Abraham García Soto, Martin Gomez Antonio Jose
Director de proyecto: Joaquín Fernández Valdivia
5º Licenciatura Informatica
ETSII 99/00 (Universidad de Granada).