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)))