template <typename RandomIterator, typename T>
bool bsearch(RandomIterator l, RandomIterator r, T x) {
assert(l < r);
while (l + 1 < r) {
RandomIterator m = l + (r - l)/2;
if (*m <= x)
l = m;
else
r = m;
}
return *l == x;
}
insert() and erase() are reasonably simple and slow
template <typename T>
struct bt_node {
list_element<T> * left, * right;
T value;
}
insert() and delete() are now fast, but are no longer
simple
This page last modified on 25 July 2000.