1
0
mirror of https://github.com/charlienet/go-mixed.git synced 2025-07-18 00:22:41 +08:00
This commit is contained in:
2022-05-20 17:17:31 +08:00
parent d4d68dc263
commit ed02794b04
11 changed files with 436 additions and 11 deletions

90
tree/bptree.go Normal file
View File

@ -0,0 +1,90 @@
package tree
// B+ tree
type BPTree[T Item[T]] struct {
length int
degree int
}
// 初始化B+树
func NewBPTree[T Item[T]](degree int) *BPTree[T] {
return &BPTree[T]{
degree: degree,
}
}
// nil cannot be added to the tree (will panic).
func (t *BPTree[T]) ReplaceOrInsert(item Item[T]) Item[T] {
return item
}
func (t *BPTree[T]) Delete(item T) (T, bool) {
return *new(T), false
}
func (t *BPTree[T]) Get(key T) (T, bool) {
return *new(T), false
}
// Has returns true if the given key is in the tree.
func (t *BPTree[T]) Has(key T) bool {
return false
}
// 升序
func (t *BPTree[T]) Ascend(iterator ItemIterator[T]) {
}
// 大于等于
func (t *BPTree[T]) AscendGreaterOrEqual(pivot Item[T], iterator ItemIterator[T]) {
}
// 小于
func (t *BPTree[T]) AscendLessThan(pivot Item[T], iterator ItemIterator[T]) {
}
// 范围迭代
func (t *BPTree[T]) AscendRange(greaterOrEqual, lessThan Item[T], iterator ItemIterator[T]) {
}
// 降序升序迭代
func (t *BPTree[T]) Descend(iterator ItemIterator[T]) {
}
// 大于,降序迭代
func (t *BPTree[T]) DescendGreaterThan(pivot Item[T], iterator ItemIterator[T]) {
}
// 小于等于,降序迭代
func (t *BPTree[T]) DescendLessOrEquql(pivot Item[T], iterator ItemIterator[T]) {
}
// 范围降序迭代
func (t *BPTree[T]) DescendRange(greaterOrEqual, lessThan Item[T], iterator ItemIterator[T]) {
}
func (t *BPTree[T]) Min() (T, bool) {
return *new(T), false
}
func (t *BPTree[T]) Max() (T, bool) {
return *new(T), false
}
func (t *BPTree[T]) Len() int {
return t.length
}
func (t *BPTree[T]) Clear() {
}
// B+ 树节点
type bpNode[T Item[T]] struct {
}