Hola!
Estoy atascada en la realización de un ejercicio de Haskell.
Se trata de una operación que obtiene una lista con todos los elementos que NO son adyacentes a un nodo dado.
Luego hay que hacer otra función que añada un arco entre dicho nodo y cada uno de sus no adyacentes.
Esto es lo que yo he intentado hacer para la lista de no adyacentes, no sé si estará bien, ¿me lo podéis revisar?:
La parte de poner el arco sí que no sé como hacerla...
¿Alguien me puede dar la idea?
Muchas gracias de antemano
Estoy atascada en la realización de un ejercicio de Haskell.
Se trata de una operación que obtiene una lista con todos los elementos que NO son adyacentes a un nodo dado.
Luego hay que hacer otra función que añada un arco entre dicho nodo y cada uno de sus no adyacentes.
Esto es lo que yo he intentado hacer para la lista de no adyacentes, no sé si estará bien, ¿me lo podéis revisar?:
Código [Seleccionar]
data Grafo a = GVacio | Nodo a (Grafo a) | Arco a a (Grafo a) deriving (Show, Eq)
adyacentes :: (Eq a) => a -> a -> Grafo a -> Bool
adyacentes x y (Arco u v g) = x==u && y==v || x==v && y==u || adyacentes x y g
adyacentes _ _ _ = False
noadylista :: (Eq a) => Grafo a -> a -> [a]
noadylista GVacio _ = []
noadylista (Arco x y g) a = if ((adyacentes a x g))
then (noadylista (Nodo y g) a)
else x:(noadylista (Nodo y g) a)
La parte de poner el arco sí que no sé como hacerla...
¿Alguien me puede dar la idea?
Muchas gracias de antemano