Anda di halaman 1dari 2

;FUngsui NbERlmt

;def spek
;NbElmt : Pohon Biner --> integer >= 0
;NbElmt (p) memberikan banyaknya elemen dari pohon p
;basis NbElmt (//\\) = 0

(defun NbElmt (p)


(if (istreeempty p)
1
(is (IsoneElmtPB p)
1
(cond ((isbiner p)
(+ (NbElmt (left p)) 1 (NbElmt (right p)))
)
(
(isunerleft p) (+ 1 (NbElmt (left p)))
)
(
(isunerright p) (+ 1 (NbElmt (right p)))
)
)
)
)
)

;fungsi Nbdaun
;def spek
;NbDaun : pohon biner --> integer
;NbDaun (p) memberikan banyaknya daun dari pohon p
(defun NbDaun (p)
(if (isoneelmtPB p)
1
(cond
((isbiner p) (+ (NbDaun (left p)) (NbDau (right p))))
((isunerleft p) (NbDaun (left p)))
(isunerright p) (NbDaun (right p)))
)
)

;fungsi repprefix
;def spek
;repprefix : pohon biner--> intger
;repprefix (p) memberiklan representasi linear dalam bentuk list

(defun repprefix (p)


(if (isoneelmTPB p)
(list (akar p))
(cond
((isbiner p) (append (list (akar p))
(repprefix (left p))
(repprefix (right p))
)
)
((isunerleft p) (append (list (akar p))
(repprefix (left p))
)
)
((isunerright p) (append (list (akar p))
(repprefix (right p))
)
)
)
)
)

;fungsi SumDaun
;def spek
;SumDaun : pohon biner --> integer
;SumDaun (p) membrikan jumlah daun dari pohon

(defun sumdaun (p)


(if (isonelemtPB p)
(akar p)
(cond
((isbiner p) (+ (sumdaun (left p)) (sumdaun (right p))))
((isunerleft p) (sumdaun (left p)))
((isunerright p) (sumdaun (right p)))
)
)
)

;fungsi SumElmt
;def spek
;Sumelmt : pohon biner --> inrtger
;sumelemt p memberian jumlah setiap elelem dari pohon p
(defun sumelmt (p)
(if (isoneelmtPB p)
(akar p)
(cond
((isbiner p) (+ (sumelmt (left p)) (akar p) (sumelmt (right p))))
((isunerleft p) (+ (sumelmt (left p)) (akar p)))
((isunerright p) (+ (sumelmt (right p)) (akar p)))
)
)
)

Anda mungkin juga menyukai