JUI - 5. cviceni
POle
;;3-rozmerne pole s dim = 2x4x6
(setf pole (make-array '(2 4 6) :initial-element nil ))
;;pristup k prvku
(aref pole 0 2 5) ;vypise nil - nic jsme tam nezaradili
;;prirazeni
(setf (aref pole 0 2 5) '(1 3) )
struktury
(defstruct Zaznam
(hodnota (progn (princ "Zadej cislo ")))
(levy nil)
pravy
)
;;vytvoreni instance
(setf z (make-zaznam)) ; otaze se na jmeno
;;prirazeni hodnoty
(setf (zaznam-levy z))
hashovaci tabulka
;;vytvoreni; make-hash-table
(setf ht (make-hash-table))
;;pristup k prvkum: gethash
(gethash klic ht) - hashuje podle cehokoliv
;;neexistuje - vraci nil
(setf (gethash 'klic ht) 10)
;;odstraneni
(remhash 'klic ht)
;;prochazeni hash tabulkou
maphash funke tabulka - ma 2 parametry: klic, hodnota
;;pr. vypsani prvku tabulky
(maphash #'(lambda (k h)
(format t "Klic: ~A hodnota: ~A ~%" k h)
)
ht
)
;; pomoci hashovaci tabulky spocete cetnost prvku v seznamu
(defun spocti-cetnosti (seznam)
(let (ht)
(setf ht (make-hash-table))
(mapcar #'(lambda (a)
(setf (gethash a ht) (if (gethash a ht) (+ 1 (gethash a ht)) 1))
)
seznam
)
(maphash #'(lambda (k h)
(format t "Prvek ~A ma cetnost ~A ~%" k h)
)
ht
)
)
)
;;mame orientovany acyklicky graf reprezentovany seznamem
( (a b c) (b c d) (c d) (d))
;;zjistit, do jakych uzlu vede cesta
Back to top