Version: 4.1.1.3
Homework 4
Language: Beginning Student with List Abbreviations
1 Binary search trees
Do exercises 14.2.3, 14.2.5, and 14.2.6 from HtDP.
2 Sorted lists
; A sorted-list is either |
; - empty |
; - (cons number[n] sorted-list[l]) |
; INVARIANT: each number in ‘l’ is larger than ‘n’ |
Write the following function:
; in? : sorted-list number -> boolean |
; determines if ‘n’ is in ‘l’ |
(define (in? l n) ---) |
You must exploit the sorted-list invariant.
3 Heap
; A heap is either |
; - false |
; - (make-node number[n] heap[l] heap[r]) |
; INVARIANT: each number in ‘l’ is larger than ‘n’ |
; INVARIANT: each number in ‘r’ is larger than ‘n’ |
Write the following functions:
; in-heap? : heap number -> boolean |
; determines if ‘n’ is in ‘h’ |
(define (in-heap? h n) ---) |
; insert-in-heap : heap number -> heap |
; constructs a new heap that contains |
; all of the numbers in ‘h’, plus ‘n’ |
(define (insert-in-heap h n) ---) |
You must exploit/maintain the heap invariant in each function (as appropriate).