Predpokladáme napr. vzostupné usporiadanie. Rekurzívne prechádzame postupnosť a vo vhodnej chvíli (nasleduje číslo vyššie ako zadané) vložíme zadané číslo a pridáme ešte neprejdený zvyšok. Ak nájdeme číslo rovnaké, potom to zadané už nevkladáme.


(defun vloz (prvok zoz)
 (cond ((null zoz) (cons prvok NIL))
       ((= prvok (first zoz)) zoz)
       ((< prvok (first zoz)) (cons prvok zoz))
       (T (cons (first zoz) (vloz prvok (rest zoz))))
 )
)

; Príklady:
(vloz 2 '())        -> (2)
(vloz 2 '(1 2 3))   -> (1 2 3)
(vloz 2 '(0 1))     -> (0 1 2)
(vloz 2 '(0 1 7 8)) -> (0 1 2 7 8)
(vloz 2 '(7 8))     -> (2 7 8)

 


Autori[ ZADANIE | AKO ZAČAŤ | RIEŠENIE ]
Posledná aktualizácia 4. 9. 2001
back  home  next