c/c++语言开发共享GoFrame gtree树形结构的使用技巧示例

树形结构树形结构gtree具有以下特点:支持排序,支持有序遍历内存占用低复杂度稳定适合大数据量存储一图胜千言查询源码使用场景关联数组场景大数据量内存crud排序键值对(后面的示例就是前序遍历和后序遍历

树形结构

树形结构gtree具有以下特点:

  • 支持排序,支持有序遍历
  • 内存占用低
  • 复杂度稳定
  • 适合大数据量存储

一图胜千言

GoFrame gtree树形结构的使用技巧示例

查询源码

GoFrame 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 gtree树形结构的使用技巧示例

技巧

最近几篇文章都提到了数据类型的排序,goframe提供的gutil提供了基本数据类型常用的比较方法。

(因为今天上午读了一篇阅读源码的文章,深受启发,所以自己也要多多读读源码了,看下大佬们是怎么写的代码的。)

GoFrame gtree树形结构的使用技巧示例

以上就是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

(0)
上一篇 2022年9月11日
下一篇 2022年9月11日

精彩推荐