Implement Prototype(commands []BSTCommand) ([]BSTResult,error) with an unsorted unique-key list; Solve implements a BST including deletion and floor. Start empty. add/remove report whether membership changed; contains reports membership. Encode these as {Kind:"bool",Bool:...} with nil Value. floor returns {Kind:"floor",Value:&key} or nil Value; Bool stays false. Unknown operation returns error. Preserve commands. An unbalanced BST may have linear height.

Edit exercise.go; retain the public types and signatures. prototype and final are separate stages. The executable tests recover panics as failures, report named checks, and exit nonzero on any failure. A successful run must execute at least one check. Tests use logical time or explicit synchronization where relevant.

Drag or use the arrow keys to resize. Home collapses the question; End collapses the editor. Enter or double-click resets the split.
Loading editor…
No results yet.

Complete the starter code, then run the checks.
Results and errors will appear here.