mirror of
https://gitee.com/johng/gf
synced 2026-06-06 02:25:47 +08:00
110 lines
2.6 KiB
Go
110 lines
2.6 KiB
Go
// Copyright GoFrame Author(https://goframe.org). All Rights Reserved.
|
|
//
|
|
// This Source Code Form is subject to the terms of the MIT License.
|
|
// If a copy of the MIT was not distributed with this file,
|
|
// You can obtain one at https://github.com/Agogf/gf.
|
|
|
|
package gtree_test
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/gogf/gf/v2/container/gtree"
|
|
"github.com/gogf/gf/v2/util/gconv"
|
|
"github.com/gogf/gf/v2/util/gutil"
|
|
)
|
|
|
|
func ExampleNewAVLTree() {
|
|
avlTree := gtree.NewAVLTree(gutil.ComparatorString)
|
|
for i := 0; i < 6; i++ {
|
|
avlTree.Set("key"+gconv.String(i), "val"+gconv.String(i))
|
|
}
|
|
|
|
fmt.Println(avlTree)
|
|
|
|
// Output:
|
|
// │ ┌── key5
|
|
// │ ┌── key4
|
|
// └── key3
|
|
// │ ┌── key2
|
|
// └── key1
|
|
// └── key0
|
|
}
|
|
|
|
func ExampleNewAVLTreeFrom() {
|
|
avlTree := gtree.NewAVLTree(gutil.ComparatorString)
|
|
for i := 0; i < 6; i++ {
|
|
avlTree.Set("key"+gconv.String(i), "val"+gconv.String(i))
|
|
}
|
|
|
|
otherAvlTree := gtree.NewAVLTreeFrom(gutil.ComparatorString, avlTree.Map())
|
|
fmt.Println(otherAvlTree)
|
|
|
|
// May Output:
|
|
// │ ┌── key5
|
|
// │ │ └── key4
|
|
// └── key3
|
|
// │ ┌── key2
|
|
// └── key1
|
|
// └── key0
|
|
}
|
|
|
|
func ExampleNewBTree() {
|
|
bTree := gtree.NewBTree(3, gutil.ComparatorString)
|
|
for i := 0; i < 6; i++ {
|
|
bTree.Set("key"+gconv.String(i), "val"+gconv.String(i))
|
|
}
|
|
fmt.Println(bTree.Map())
|
|
|
|
// Output:
|
|
// map[key0:val0 key1:val1 key2:val2 key3:val3 key4:val4 key5:val5]
|
|
}
|
|
|
|
func ExampleNewBTreeFrom() {
|
|
bTree := gtree.NewBTree(3, gutil.ComparatorString)
|
|
for i := 0; i < 6; i++ {
|
|
bTree.Set("key"+gconv.String(i), "val"+gconv.String(i))
|
|
}
|
|
|
|
otherBTree := gtree.NewBTreeFrom(3, gutil.ComparatorString, bTree.Map())
|
|
fmt.Println(otherBTree.Map())
|
|
|
|
// Output:
|
|
// map[key0:val0 key1:val1 key2:val2 key3:val3 key4:val4 key5:val5]
|
|
}
|
|
|
|
func ExampleNewRedBlackTree() {
|
|
rbTree := gtree.NewRedBlackTree(gutil.ComparatorString)
|
|
for i := 0; i < 6; i++ {
|
|
rbTree.Set("key"+gconv.String(i), "val"+gconv.String(i))
|
|
}
|
|
|
|
fmt.Println(rbTree)
|
|
|
|
// Output:
|
|
// │ ┌── key5
|
|
// │ ┌── key4
|
|
// │ ┌── key3
|
|
// │ │ └── key2
|
|
// └── key1
|
|
// └── key0
|
|
}
|
|
|
|
func ExampleNewRedBlackTreeFrom() {
|
|
rbTree := gtree.NewRedBlackTree(gutil.ComparatorString)
|
|
for i := 0; i < 6; i++ {
|
|
rbTree.Set("key"+gconv.String(i), "val"+gconv.String(i))
|
|
}
|
|
|
|
otherRBTree := gtree.NewRedBlackTreeFrom(gutil.ComparatorString, rbTree.Map())
|
|
fmt.Println(otherRBTree)
|
|
|
|
// May Output:
|
|
// │ ┌── key5
|
|
// │ ┌── key4
|
|
// │ ┌── key3
|
|
// │ │ └── key2
|
|
// └── key1
|
|
// └── key0
|
|
}
|