DEFINITION MODULE Grafo; FROM TadNodo IMPORT NODO; TYPE GRAFO; TIPO_ERROR = <>; PROCEDURE Error(): TIPO_ERROR; PROCEDURE Crear(): GRAFO; PROCEDURE EsVacio(g: GRAFO): BOOLEAN; PROCEDURE Pertenece(g: GRAFO; n: NODO): BOOLEAN; PROCEDURE NumNodos(g: GRAFO): CARDINAL; PROCEDURE NumArcos(g: GRAFO): CARDINAL; PROCEDURE Adyacentes(g: GRAFO; n1, n2: NODO): BOOLEAN; (* Pre: NOT Pertenece(g, n) *) PROCEDURE AnyadirNodo (VAR g: GRAFO; n: NODO); (* Pre: Pertenece(g, n) *) PROCEDURE BorrarNodo(VAR g: GRAFO; n: NODO); (* Pre: Pertenece(g, n1) AND Pertenece(g, n2) AND NOT Adyacentes(g, n1, n2) *) PROCEDURE Conectar (VAR g: GRAFO; n1,n2: NODO) (* Pre: Adyacentes(g, n1, n2) *) PROCEDURE Desconectar(VAR g: GRAFO; n1,n2: NODO); PROCEDURE Inicializar(g: GRAFO); PROCEDURE Elemento(g: GRAFO): NODO; PROCEDURE Destruir(VAR g: GRAFO); PROCEDURE Copiar (VAR g1: GRAFO; g2: GRAFO); END Grafo.