Lec8
- 12. Графи >(neighbour1 2 '((0 1 1 0)(0 0 1 0)(0 0 0 1)(1 0 0 0))) (3) >(neighbour1 4 '((0 1 1 0)(0 0 1 0)(0 0 0 1)(1 0 0 0))) (1) >(neighbour1 1 '((0 1 1 0)(0 0 1 0)(0 0 0 1)(1 0 0 0))) (2 3) (defun neighbour1 (x graph) (neigb1 1 (nth (- x 1) graph))) (defun neigb1 (i lst) (cond ((null lst) nil) ((eql (car lst) 1) (cons i (neigb1 (+ i 1) (cdr lst)))) (t (neigb1 (+ i 1) (cdr lst))))
- 15. Графи (defun neighbour2 (x graph) (cond ((null graph) nil ) ((and (eq l (caar graph) x) (eq l (cdar graph)'false)) nil) ((eql (caar graph) x) ( cons (cdar graph) ( neighbour2 x (cdr graph))) ) ((eql(cdar graph) x) ( cons (caar graph) (neighbour2 x (cdr graph))) ) (t (neighbour2 x (cdr graph)))))
- 16. Графи >(neighbour2 2 '((1 . 2) (1 . 3) (2 . 3) (5 . false))) (1 3) >(neighbour2 1 '((1 . 2) (1 . 3) (2 . 3) (5 . false))) (2 3) >(neighbour2 5 '((1 . 2) (1 . 3) (2 . 3) (5 . false))) nil
- 17. Графи (defun main (x graph) (list-set (neighbour2 x graph)) ) (defun list-set (lst) (cond ((null lst) nil ) ((member (car lst) (cdr lst)) (list-set (cdr lst)) ) (t (cons (car lst) (list-set (cdr lst))) ) ))
- 18. Графи > (main 2 '((1 . 2) (1 . 3) (2 . 3) (2 . 1) (3 . 1) (3 . 2) (5 . false))) (1 3) > (main 1 '((1 . 2) (1 . 3) (2 . 3) (2 . 1) (3 . 1) (3 . 2) (5 . false))) (2 3) > main 5 '((1 . 2) (1 . 3) (2 . 3) (2 . 1) (3 . 1) (3 . 2) (5 . false))) NIL
- 20. Графи (defun neighbour3 (x graph) (cond ( (null (assoc x graph)) nil ) ( t (cdr (assoc x graph)) ) ) > (neighbour3 2 ' ((1 . (2 3 4)) (2 . (1 3)) (3 . (1 2)) (4 . (1)))) (1 3) > (neighbour3 1 ' ((1 . (2 3 4)) (2 . (1 3)) (3 . (1 2)) (4 . (1)))) (2 3 4) > (neighbour3 3 ' ((1 . (2 3 4)) (2 . (1 3)) (3 . (1 2)) (4 . (1)))) (1 2)