func (t *BTree) DeleteAny() (empty bool, err error) {
	if t == nil {
		err = errors.New("BTree method invoked on nil receiver")
		return
	}
	t.serial++
	return t.root.deleteAny(t.store)
}
DeleteAny deletes one key and its associated value from the tree. If the
tree is empty on return then empty is true.
package lldb
import (
	"bytes"
	"errors"
	"fmt"
	"io"
	"sort"
	"strings"
	"github.com/cznic/fileutil"
	"github.com/cznic/internal/buffer"
	"github.com/cznic/sortutil"
)
const (
	kData             = 256          
	kIndex            = 256          
	kKV               = 19           
	kSz               = kKV - 1 - 7  
	kH                = kKV - 7      
	tagBTreeDataPage  = 1
	tagBTreeIndexPage = 0
)
type BTree struct {
	store   btreeStore
	root    btree
	collate func(a, b []byte) int
	serial  uint64
}
func NewBTree(collate func(a, b []byte) int) *BTree {
	store := newMemBTreeStore()
	root, err := newBTree(store)
	if err != nil {  
		panic(err.Error())
	}
	return &BTree{store, root, collate, 0}
}
func (t *BTree) IsMem() (r bool) {
	_, r = t.store.(*memBTreeStore)
	return
}
func (t *BTree) Clear() (err error) {
	if t == nil {
		err = errors.New("BTree method invoked on nil receiver")
		return
	}
	t.serial++
	return t.root.clear(t.store)
}
func (t *BTree) Delete(key []byte) (err error) {
	if t == nil {
		err = errors.New("BTree method invoked on nil receiver")
		return
	}
	t.serial++
	_, err = t.root.extract(t.store, nil, t.collate, key)
	return
}