Prezi

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in the manual

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Multilistas

No description
by Cynthia Escobar on 30 October 2012

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Multilistas

MULTILISTAS ESTRUCTURA DE DATOS ANDRÉS GONZALEZ TÉRMINOS Tipo de Dato Abstracto (TDA) Modelo formal de un ente junto con un conjunto de operaciones definidas sobre el modelo que nos permite procesarlo. Estructuras de Datos Organización lógica de la información con que representamos los Datos.
RELACIONES Tipos de Relaciones Uno a uno Uno a muchos Muchos a muchos Ejemplo: Nombre <--> Cédula Ejemplo: Equipo <-->> Jugador Ejemplo: Alumno <<-->> Asignatura Representación de relaciones muchos a muchos.Matriz.
Listas.
Multilistas.
DEFINICIONES Conjunto de nodos en que algunos tienen más de un puntero y pueden estar en más de una lista simultáneamente. Para cada tipo de nodo es importante distinguir los distintos campos puntero para realizar los recorridos adecuados y evitar confusiones. Estructura básica para Sistemas de Bases de Datos en Red. IMPLEMENTACIÓN Dados dos tipos de entidades, TipoA y TipoB, se necesitan:

Dos nuevos tipos correspondientes a los nodos para cada clase de entidad, que junto con la información propia de la entidad incluye los punteros necesarios para mantener la estructura. typedef struct NodoTipoB{

TipoB Info;

NodoRelacion *PrimerA;

} NodoTipoB; typedef struct NodoTipoA {

TipoA Info;

NodoRelacion *PrimerB;

} NodoTipoA; Una estructura para agrupar los objetos de cada tipo de entidad (Array, Lista, Árbol, Tabla Hash, ...).

Un tipo de dato abstracto Nodo Relación que incluye un puntero por cada lista así como información propia de la relación. typedef struct NodoRelacion {
NodoTipoA *SiguienteA;
NodoTipoB *SiguienteB;
<tipo1> campo1;
........
<tipon> campo_n;
} NodoRelacion;
Un nodo Multilista que engloba los distintos tipos de nodos (entidad A, entidad B y relación). El tipo de dato para construir esto es el registro variante:

typedef enum {NODO_A, NODO_B, NODO_ML} TipoNodo typedef struct NodoMultilista {
TipoNodo tipo;
union {
NodoTipoA a;
NodoTipoB b;
NodoRelacion nr;
} cont;
} NodoMultilista;
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;
};
};
See the full transcript