我正试图在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
我怎么能得到它?
答案 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
我现在已经展示了如何命名节点并在其他地方使用它。 我还没有确定找到级别是否符合你的要求。