Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Lec8

445 views

Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Lec8

  1. 1. ДЕЯКІ КЛАСИЧНІ АЛГОРИТМИ ТА ЇХ РЕАЛІЗАЦІЯ
  2. 2. Бінарні дерева пошуку (Корінь (Ліве-піддерево Праве-піддерево))
  3. 3. Бінарні дерева пошуку (Корінь Ліве-піддерево Праве-піддерево)
  4. 4. Бінарні дерева пошуку (Корінь . (Ліве-піддерево . Праве-піддерево))
  5. 5. Бінарні дерева пошуку (defun insel (n tree) (cond ((null tree) (cons n nil)) ((> n (car tree)) (cons (car tree) (cons (cadr tree) (insel n (cddr tree))))) (t (cons (car tree) (cons (insel n (cadr tree)) (cddr tree)))) ))
  6. 6. Бінарні дерева пошуку 5 3 1 4 7 6 13 15 11 17 > (setq tr (insel 5 nil)) > (setq tr (insel 15 (5) tr)) > (setq tr (insel 3 tr)) (5 (3 (1) 4) 7 (6) 13 NIL 15) (5 (3)) > (setq tr (insel 11 > (setq tr (insel 1 tr)) tr)) (5 (3 (1))) (5 (3 (1) 4) 7 (6) 13 > (setq tr (insel 4 tr)) (11) 15) (5 (3 (1) 4)) > (setq tr (insel 17 > (setq tr (insel 7 tr)) tr)) (5 (3 (1) 4) 7) (5 (3 (1) 4) 7 (6) 13 > (setq tr (insel 6 tr)) (11) 15 NIL 17) (5 (3 (1) 4) 7 (6)) > (setq tr (insel 13 tr)) (5 (3 (1) 4) 7 (6) 13)
  7. 7. Бінарні дерева пошуку (defun pud (tree) (cond ((null tree)) (t (format t quot;~d quot; (car tree)) (pud (cadr tree)) (pud (cddr tree)) )) ) >(pud tr) 5 3 1 4 7 6 13 11 15 17 T
  8. 8. Бінарні дерева пошуку (defun plr (tree) (cond ((null tree)) (t (plr (cadr tree)) (format t quot;~d quot; (car tree)) (plr (cddr tree)) )) ) >(plr tr) 1 3 4 5 6 7 11 13 15 17 T
  9. 9. Графи G=(V,E) V – множина вершин графу Е – множина ребер графу еі=(vk, vl) – vk та vl Є V Порядок графу Суміжні вершини та ребра Шлях у графі – (v1,v2)(v2,v3)…(vk+1,vk) Довжина Цикл Зв’язаний граф Відстань між вершинами U та V Остове дерево графу
  10. 10. Графи G граф порядку N, V={1,2,…,N} Матриця суміжності B = [Bij] NxN. Bij =1 або Bij =0 + - “чи існує ребро з i в j ?”- розмір пам’яті NxN один крок
  11. 11. Графи 0 1 1 0 ((0 1 1 0)   0 0 1 0 (0 0 1 0) 0 0 0 1 (0 0 0 1)   (1 0 0 0)) 1 0 0 0  
  12. 12. Графи (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)))) >(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)
  13. 13. Графи
  14. 14. Графи
  15. 15. Графи (defun neighbour2 (x graph) (cond ((null graph) nil ) ((and (eql (caar graph) x) (eql (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. 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. 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. 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
  19. 19. Графи
  20. 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)
  21. 21. Графи (defun depthfirst graph root) (cond ((null graph) nil ) (t (defi graph (list root) (list root))))) (defun defi (graph visited path) (cond ((null path) (reverse visited) ) (t(cond ((null (expnd graph visited (car path))) (defi graph visited(cdr path)) ) (t(defi graph (cons (expnd graph visited(car path))visited) (cons (expnd graph visited(car path)) path)) )) )))
  22. 22. Графи (defun expnd (graph visited vertex) (cond ((null (neighbour3 vertex graph)) nil ) (t (firstnotvisited visited (neighbour3 vertex graph)))) (defun firstnotvisited (visited vlist) (cond ((null vlist) nil ) (t(cond ((null (member (car vlist) visited)) (car vlist)) (t (firstnotvisited visited(cdr vlist)) ))))
  23. 23. Графи >(depthfirst '((1 . (2 3 4)) (2 . (3)) (3 . (4))) 1) (1 2 3 4) >(depthfirst '((1 . (2 3 4)) (2 . (3)) (3 . (4))) 2) (2 3 4) >(depthfirst '((1 . (2 3 4)) (2 . (3)) (3 . (4))) 3) (3 4) > >(depthfirst '((1 . (2 3 4)) (2 . (3 1)) (3 . (4))) 2) (2 3 4 1)
  24. 24. Графи >(depthfirst '((1 . (2 3)) (2 . (4 5)) (3 . (6 7))) 1) (1 2 4 5 3 6 7)
  25. 25. Дякую за увагу

×