ARGHHH ÁRVORES! Mais uma pra galera

2 views
Skip to first unread message

eduardo malaguti

unread,
Apr 16, 2009, 3:29:13 PM4/16/09
to htdp-...@googlegroups.com
;;Exercise 14.2.5.   Develop the function create-bst. It consumes a BST B, a number N, and a symbol S. It produces a BST that is just like B and that in place of one false subtree contains the node structure

;(make-node N S false false)
;
;Test the function with (create-bst false 66 'a); this should create a single node. Then show that the following holds:
;
;  (create-bst (create-bst false 66 'a) 53 'b)
;= (make-node 66
;             'a
;             (make-node 53 'b false false)
;             false)
;
;Finally, create tree A from figure 38 using create-bst.

;; create-bst : BST number symbol -> BST
;; data :
;empty? false?
;n = BST? make-node n s false false
;n < BST? create-bst node-left
;n > BST? create-bst node-right
;else false

;; Example :
;(create-bst (make-node 'x 10 false false) 'w 5)

;; Definition :
(define-struct node (name ssn left right))
; name=symbol ssn=number left=node right=node

(define (create-bst aBST s n)
  (cond
    [(or (empty? aBST)
          (false? aBST)) (make-node s n false false)]
    [(< n (node-ssn aBST)) (create-bst s n (node-left aBST))]
    [(> n (node-ssn aBST)) (create-bst s n (node-right aBST))]
    [else false]))


;; Tests :
(create-bst false 'w 5)
(create-bst (create-bst false 'a 66) 'b 53)

Esses são os resultados dos testes:
o primeiro: (make-node 'w 5 false false) TA CERTO
o segundo: ERROR: node-ssn: expects argument of type <struct:node>; given 'b (o erro aqui é no primeiro node-ssn que aparece, ali na clálsula n menor que node-ssn aBST. Por que dá essa merda de erro? eu não dei 'b, eu dei 53!
--
Eduardo "Barbosa" Santaella Malaguti

Renato Dutra Luciano

unread,
Apr 16, 2009, 4:53:28 PM4/16/09
to htdp brasil
Opa! mais uma vez amigo, as informações não estão claras. Entretanto a idéia do codigo está correta e precisando de pequenos ajustes.
Acredito que para eliminarmos essa falta de clareza na disposição das informações é através da formulação do Design Recipe corretamente.
O Design Recipe serve como a fonte de informações necessarias para a construção do codigo, como a receita de um novo tipo pão, para o padeiro. Pois ele perderia muito tempo se tivesse que memorizar os ingredientes e o tempo em que cada um deste é inserido no preparo. Portanto o caminho da informação tem que estar todo disposto em comentarios no DrScheme para que fique acessivel. Não só o Data Definition. 

Valeu!


Date: Thu, 16 Apr 2009 16:29:13 -0300
Subject: ARGHHH ÁRVORES! Mais uma pra galera
From: eduardo....@gmail.com
To: htdp-...@googlegroups.com

Descubra quais produtos Windows Live tem mais a ver com você! Faça o teste!
Reply all
Reply to author
Forward
0 new messages