我如何 return Dr Racket 列表的顶点?

How can I return vertex of the list on Dr Racket?

我正在尝试在球拍上获得顶点。但是我不能

我错过了什么?

    (define-struct node (vertex val left right))
(define (list-tree) (make-node 5 'a (make-node 1 'b empty empty) (make-node 6 'c empty (make-node 14 'd empty empty))))



(define (find-level T)
  (+ (node-vertex T) (node-vertex (node-left T) 
  
  )))

(find-level 'd)

输出是:node-vertex: expects a node, given 'd

如何获取?

创建节点时需要给节点命名。

(define-struct node (vertex val left right))  ; define what node means
(define d (make-node 14 'd empty empty))      ; make a node and name it d

(define a-tree 
  (make-node 5 'a (make-node 1 'b empty empty) 
                  (make-node 6 'c empty d)))  ; use the name d here


(define (find-level T)
   (+ (node-vertex T) (node-vertex (node-left T))))

(find-level d)  ; use the name d here

我现在已经展示了如何命名节点并在其他地方使用它。 我还没有检查 find-level 是否满足你的要求。