树形结构
树形结构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树形结构的资料请关注<计算机技术网(www.ctvol.com)!!>其它相关文章!
需要了解更多c/c++开发分享GoFrame gtree树形结构的使用技巧示例,都可以关注C/C++技术分享栏目—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/1238020.html