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