如何在Dr Racket上返回列表的顶点?

时间:2015-05-17 15:33:24

标签: racket

我正试图在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:期望一个节点,给定'd

我怎么能得到它?

1 个答案:

答案 0 :(得分:0)

您需要在创建节点时为其命名。

(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

我现在已经展示了如何命名节点并在其他地方使用它。 我还没有确定找到级别是否符合你的要求。