home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Frozen Fish 2: PC
/
frozenfish_august_1995.bin
/
bbs
/
d09xx
/
d0963.lha
/
SIOD
/
scm
/
remake-tree.scm
< prev
next >
Wrap
Text File
|
1993-02-22
|
1KB
|
33 lines
(define (dividi lis el p)
(if (eqv? (car lis) el)
(list p (cdr lis))
(dividi (cdr lis)
el
(append p
(list (car lis))))))
(define (separa lis n p)
(if (= n 0)
(list p (cdr lis))
(separa (cdr lis)
(-1+ n)
(append p
(list (car lis))))))
(define (costruisci pre in)
(if (null? pre)
the-empty-tree
(let* ((radice (car pre))
(coppia1 (dividi in radice nil))
(in-left (car coppia1))
(in-right (cadr coppia1))
(n (lenght in-left))
(coppia2 (separa (cdr pre) n nil))
(pre-left (car coppia2))
(pre-right (cadr coppia2)))
(make-tree (costruisci pre-left in-left)
radice
(costruisci pre-right in-right)))))