Scheme 如何在树中查找父级
我不熟悉这个计划,我需要帮助。如何在树中找到元素的父级Scheme 如何在树中查找父级,scheme,Scheme,我不熟悉这个计划,我需要帮助。如何在树中找到元素的父级 ;; returns left subtree of node (define (left node) (if (null? node) '() (cadr node))) ;; returns right subtree of node (define (right node) (if (null? node) '() (caddr node))) 我认为应该是这样的: (define (parent
;; returns left subtree of node
(define (left node)
(if (null? node) '()
(cadr node)))
;; returns right subtree of node
(define (right node)
(if (null? node) '()
(caddr node)))
我认为应该是这样的:
(define (parent element tree)
(cond
((null? tree) )
(car tree)
((< val (car tree)) (parent val (left tree))) ;
((> val (car tree)) (parent val (right tree)));
)
)
(定义(父元素树)
(续)
((空?树))
(汽车树)
(val(汽车树))(父val(右树));
)
)
向父级添加额外参数
(define (parent element parent-of-tree tree)
...)
根元素没有父元素,因此按如下方式调用parent
:
(parent element #f tree)
当您深入到树中时,请在树的父级中传递父级。
例如(((
((< val (car tree)) (parent val tree (left tree)))