您现在的位置是:网站首页> 编程资料编程资料
GoFrame gtree树形结构的使用技巧示例_Golang_
2023-05-26
528人已围观
简介 GoFrame gtree树形结构的使用技巧示例_Golang_
树形结构
树形结构gtree具有以下特点:
- 支持排序,支持有序遍历
- 内存占用低
- 复杂度稳定
- 适合大数据量存储
一图胜千言

查询源码

使用场景
- 关联数组场景
- 大数据量内存CRUD
- 排序键值对(后面的示例就是前序遍历和后序遍历)
使用入门
我们以实例化红黑树为例(实例化B树、高度平衡树也是一样的方式)
常用方法
Set() 赋值
Keys() 获得键列表
Values() 获得值列表
Contains() 判断是否包含指定的key
t.Print() 可以直接打印树形结构
也可以通过常规方式打印树形结构:fmt.Println(t.String())
Iterator() 相关的方法进行树的遍历
Clear() 清空数
IsEmpty() 判断数是否为空
示例代码
package main import ( "fmt" "github.com/gogf/gf/container/gtree" "github.com/gogf/gf/util/gutil" ) func main() { //实例化tree t := gtree.NewRedBlackTree(gutil.ComparatorInt) t.Set(-1, -1) for i := 0; i < 10; i++ { t.Set(i, i*10) } fmt.Println("键列表:", t.Keys()) fmt.Println("值列表:", t.Values()) // 查询是否包含 fmt.Println(t.Contains(-1)) fmt.Println("下面是使用t.Print()打印的树形结构:") t.Print() //打印出树形结构 fmt.Println("下面是使用fmt.Println(t.String())打印的树形结构:") fmt.Println(t.String()) //和上面一样 也是打印出了树形结构 t.IteratorDesc(func(key, value interface{}) bool { fmt.Println("倒序遍历:", key, value) return true }) t.Clear() fmt.Println(t.IsEmpty()) //true }打印结果

技巧
最近几篇文章都提到了数据类型的排序,GoFrame提供的gutil提供了基本数据类型常用的比较方法。
(因为今天上午读了一篇阅读源码的文章,深受启发,所以自己也要多多读读源码了,看下大佬们是怎么写的代码的。)

以上就是GoFrame gtree树形结构的使用技巧示例的详细内容,更多关于GoFrame gtree树形结构的资料请关注其它相关文章!
您可能感兴趣的文章:
相关内容
- Go语言kafka生产消费消息实例搬砖_Golang_
- go语言搬砖之go jmespath实现查询json数据_Golang_
- Go语言resty http包调用jenkins api实例_Golang_
- Go语言kylin任务自动化实例详解_Golang_
- Go结合反射将结构体转换成Excel的过程详解_Golang_
- 深入Golang的接口interface_Golang_
- Go语言dolphinscheduler任务调度处理_Golang_
- 深入了解Golang的map增量扩容_Golang_
- Golang中panic与recover的区别_Golang_
- Golang的关键字defer的使用方法_Golang_
