-1
; 리프 표지 트리 (LLT)는 다음 중 하나입니다언어 체계, 리프 레이블 트리
; * 빈
; L1은 비어 LLT이고, L2 * (양론 L1, L2)는
LLT
이다; V는 지능과 L * (죄수 V의 난),는 LLT방법 잎 표지 트리의 특정 목록을 찾을 수있다? 예를 들어, 매개 변수 n이 있고 n이 포함 된 목록을 찾고 싶습니다. 어떻게해야합니까?
; 리프 표지 트리 (LLT)는 다음 중 하나입니다언어 체계, 리프 레이블 트리
; * 빈
; L1은 비어 LLT이고, L2 * (양론 L1, L2)는
LLT
이다; V는 지능과 L * (죄수 V의 난),는 LLT방법 잎 표지 트리의 특정 목록을 찾을 수있다? 예를 들어, 매개 변수 n이 있고 n이 포함 된 목록을 찾고 싶습니다. 어떻게해야합니까?
빈 나무가 있습니다. '()
또는 (cons x y)
입니다. 여기서 x와 y는 정수 값이거나 하위 트리 일 수 있습니다. 기본적으로 번호가있는 단순한 목록 구조일까요? 이 이후
eq?
그래서 당신이 실제로 너무 나무의 일부를 검색 할 수 있습니다 할 경우
(define (locate tree x)
(cond ;; if it's not a pair we didn't find it
((not (pair? <??>)) #f)
;; if the car or the cdr of tree is x, return tree
((or (eqv? <??> <??>) (eqv? <??> <??>)) <??>)
;; answer must be in either the car OR the cdr
(else (or (locate <??> x) (locate <??> x)))))
eqv?
는 #T됩니다 . 예 :
(define tree '(1 (2 (3 (4) 5 6 7 8))))
(locate tree 4) ; ==> (4)
(locate tree (locate tree 4)) ; ==> ((4) 5 6 7 8)
는하지만 그것은 단지 eq?
입니다 구조 작동합니다. 예를 들어 equal?
을 사용하지 않으면이 기능이 작동하지 않습니다.
(locate tree '(4)) ; ==> #f
목록이 무엇인가요? 'leaf-labeled-tree' 만 정의했습니다.'empty'와'Int'를 언급했습니다. 사용자의 설명에 따라리스트는 아무 곳에도 맞지 않습니다 (단지'Int'와'Llt'). – GoZoner
LLT 자체가 – Cylia
그래서 문제가'n'이 포함 된 하위 트리를 찾는 것입니다 목록입니다. – GoZoner