Maîtrise d'Informatique - 1996-1997, appel, corrections    

; 1
(de noeud_tous (l)
  (when l (append (list (caar l)) (noeud_tous (cdr l)))
  )

)  

; 2   
(de noeud_succ (l)
  (let ((m ()))
	( while l
		(if (< 1 (length (car l)))
		    (setq m (cons (car (car l)) m))
		    ()
		)
		
		(setq l (cdr l))
	)
  	m
  )
)  

; 4 ajouter
(de ajou (x y gr)
  (cond ( (null gr)  (list (list x y))
        )
        ( (equal x (caar gr)) (cons (reverse (cons y (reverse (car gr)))) (cdr
        gr))
        )
        ( t (append (list (car gr)) (ajou x y (cdr gr)))
        )
   )
) 

; 5 successeurs d'un noeud dans un graphe        
(de successeur1 (x graph)
  (when graph
        (if (equal x (caar graph))  (cdar graph)
            (successeur1 x (cdr graph))
        )
   )
) 

; 6 
(de union (e1 e2)
    (cond ((null e1) e2)
          ((member (car e1) e2) (union (cdr e1) e2))
          (t (union (cdr e1) (cons (car e1) e2)))
    )
)

(de succ_liste (l1 graph)
    (when l1 (union (successeur1 (car l1) graph) (succ_liste (cdr l1) graph)
             )
    )
)    
  
  
;7         
(de diff (e1 e2)
   (cond ((null e1) ())
         ((member (car e1) e2) (diff (cdr e1) e2))
         (t (cons (car e1) (diff (cdr e1) e2)))
   )
)

(de succ (x graph)
  (let (  (liste (list x))  )
     (while (not (null (diff   (succ2 liste graph) liste 
                       )
                 )
            )
           (setq liste (union liste  (succ2 liste graph)
                       ) 
           )                        
        
      )      
     liste                 
   )   
)
  






Vincent Vajnovszki
ven 27 fév 13:03:55 NFT 1998