如何在树中查找父级

时间:2014-11-23 04:16:39

标签: 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 element tree)

   (cond
        ((null? tree) )
        (car tree)
        ((< val (car tree)) (parent val (left tree))) ; 
        ((> val (car tree)) (parent val (right tree))); 


    )
  )

1 个答案:

答案 0 :(得分:0)

向父

添加额外参数
(define (parent element parent-of-tree tree)
  ...)

根元素没有父元素,因此请像这样调用parent

   (parent element #f tree)

当您深入树中时,请传递父树中的父级。 例如,(&lt; val(车辆树))变为:

   ((< val (car tree)) (parent val tree (left tree)))