Buscar este blog

16 de enero de 2010


BUSQUEDA EN UN GRAFO


Suponga que queremos encontrar la posición POS de un nodo N de un grafo C. Esto se puede llevar a cabo  mediante el procedimiento 8.3, tal como sigue:

Procedimiento 8.4 ELIMINAR (INFO, ENL, PRINCIPIO, DISP, ITEM, INDIC)
                              [Algoritmo 5.10]
                              Elimina el primer nodo de la lista que contenga a ITEM, o hace 
                              INDIC:=FALSO si ITEM no aparece en la lista.


1.    [¿Lista vacía?]S i PRINCIPIO=NULO, entonces: Hacer
INDIC:=FALSO y volver.


2.    [¿ITEM  en primer nodo?]Si INFO[PRINCIPIO]=ITEM, entonces:
Hacer PTR:=PRINCIPIO,
           PRINCIPIO:=ENL[PRINCIPIO],
           ENL[PTR]:=DISP, DISP,:=PTR,
           INDIC:=VERDADERO y volver.
[Fin del condicional],


3.    Hacer PTR:=ENL [PRINCIPIO] y SALVA:=PRINCIPIO.
[Inicializar punteros].

4.    Repetir pasos 5,6 mientras PTR≠NULO:     

5.             Si INFO [PTR]=ITEM, entonces:
                 Hacer ENL[SALVA]:=ENL[PTR],
                 ENL[PTR]:=DISP, DISP:=PTR,
                 INDIC:=VERDADERO y volver.
          [Fin del condicional].


6.              Hacer SALVA:=PTR y PTR:=ENL[PTR].
          [Actualizar punteros].
[Fin del bucle del paso 4].

7.    Hacer INDIC:=FALSO y volver.

No hay comentarios:

Publicar un comentario