Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #lang racket
- (require pict
- pict/tree-layout)
- ;; node is a BST structure,
- ;; recursively defined as one of:
- ;; empty
- ;; (make-node node node number)
- (define-struct node (left right val))
- ;; (draw BST) returns a 2D pict of a BST, or #f if BST is empty.
- (define (draw BST)
- (define (visualize BST)
- (cond
- [(null? BST) #f]
- [else
- (define node-pict (cc-superimpose
- (disk 30 #:color "white")
- (text (number->string (node-val BST)))))
- (tree-layout #:pict node-pict
- (visualize (node-left BST))
- (visualize (node-right BST)))]))
- (if (null? BST)
- #f
- (naive-layered (visualize BST))))
- ;; ===============================================================
- ;; For example:
- ;; the following is an example binary search tree:
- (define example
- (make-node
- (make-node empty empty 3)
- (make-node
- (make-node empty empty 7)
- (make-node empty empty 10) 8) 5))
- ;; Generate the 2D pict using draw (defined above)
- (define generated-pict (draw example))
- ;; Convert generated pict to bitmap and save it as a png
- (send (pict->bitmap generated-pict)
- save-file "example.png" 'png)
Add Comment
Please, Sign In to add comment