Exercise 3.26. To search a table as implemented above, one needs to scan through the list of records. This is basically the unordered list representation of section 2.3.3. For large tables, it may be more efficient to structure the table in a different manner. Describe a table implementation where the (key, value) records are organized using a binary tree, assuming that keys can be ordered in some way (e.g., numerically or alphabetically). (Compare exercise 2.66 of chapter 2.) ———————————————————————————————————————————————————————————————————————— Each node is either nil or stores a key, value, and left and right subtrees. On lookup, we begin at the root node, and if the node is nil, return false, otherwise compare the node's key to the key to be found. If they are equal, return the value, if greater, look up the key in the right subtree, otherwise look up the key in the left subtree. Insertion is similar except that if the search leads us to a nil node, we replace it with a new node with the key and value to be inserted.