Skip to content

Latest commit

 

History

History
77 lines (60 loc) · 1.35 KB

Uebung1.md

File metadata and controls

77 lines (60 loc) · 1.35 KB

Übungsblatt 1

Daniel Meng, 1427948, repo-14
Julian Braasch, 1512359, repo-15
Mustafa Yildiz, 1411880, repo-16

Aufgabe 1

a) Elemente tauschen

(defun rotiere (l)
  (append (cdr l) (list (car l)))
)

b) Element einfügen

(defun neues-vorletztes (e l)
  (append (reverse (cdr (reverse l))) (list e) (list (car (reverse l))))
)

c) Länge einer Liste berechnen

(defun my-length (l)
  (do (
      (anz 0 (+ anz 1))
      (listneu l (cdr listneu)))
      ((null listneu) anz)
  )
)

d) Länge einer geschachtelten Liste berechnen

(defun my-lengthR (l)
  (do (
      (listneu l (cdr listneu))
      (anz 0 (if (atom (car listneu)) (+ anz 1) (+ anz (my-lengthR (car listneu))))))
      ((null listneu) anz)
  )
)

e) Listen umkehren

(defun my-reverse (l) 
  (cond (
        (null l) '())	
        (T (append (my-reverse (cdr l)) (list (car l))))
  )
)

f) Geschachtelte Listen umkehren

(defun my-reverseR (l)
  (cond ((null l) nil)
        ((listp (car l)) (append (my-reverseR (cdr l)) (list (my-reverseR (car l)))))
        (T (append (my-reverseR (cdr l)) (list (car l))))
  )
)

Aufgabe 2

a) Darstellung eines Binärbaums

Das erste Element ist die Wurzel. Die anderen beiden sind Knoten.
Ein Knoten besteht wiederrum aus sich selbst und ein/mehreren Knoten.

b) Baumtraversierung