欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

GoFrame?gtree樹形結構的使用技巧示例

 更新時間:2022年06月09日 16:58:34   作者:王中陽Go  
這篇文章主要為大家介紹了GoFrame?gtree樹形結構的使用技巧示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

樹形結構

樹形結構gtree具有以下特點:

  • 支持排序,支持有序遍歷
  • 內存占用低
  • 復雜度穩(wěn)定
  • 適合大數(shù)據(jù)量存儲

一圖勝千言

查詢源碼

使用場景

  • 關聯(lián)數(shù)組場景
  • 大數(shù)據(jù)量內存CRUD
  • 排序鍵值對(后面的示例就是前序遍歷和后序遍歷)

使用入門

我們以實例化紅黑樹為例(實例化B樹、高度平衡樹也是一樣的方式)

常用方法

Set() 賦值

Keys() 獲得鍵列表

Values() 獲得值列表

Contains() 判斷是否包含指定的key

t.Print() 可以直接打印樹形結構

也可以通過常規(guī)方式打印樹形結構:fmt.Println(t.String())

Iterator() 相關的方法進行樹的遍歷

Clear() 清空數(shù)

IsEmpty() 判斷數(shù)是否為空

示例代碼

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
}

打印結果

技巧

最近幾篇文章都提到了數(shù)據(jù)類型的排序,GoFrame提供的gutil提供了基本數(shù)據(jù)類型常用的比較方法。

(因為今天上午讀了一篇閱讀源碼的文章,深受啟發(fā),所以自己也要多多讀讀源碼了,看下大佬們是怎么寫的代碼的。)

以上就是GoFrame gtree樹形結構的使用技巧示例的詳細內容,更多關于GoFrame gtree樹形結構的資料請關注腳本之家其它相關文章!

相關文章

  • golang如何利用原始套接字構造UDP包詳解

    golang如何利用原始套接字構造UDP包詳解

    這篇文章主要給大家介紹了關于golang如何利用原始套接字構造UDP包的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用golang具有一定的參考學習價值,需要的朋友們下面來一起看看吧。
    2017-10-10
  • Go語言的JSON處理詳解

    Go語言的JSON處理詳解

    json格式可以算我們日常最常用的序列化格式之一了,Go語言作為一個由Google開發(fā),號稱互聯(lián)網(wǎng)的C語言的語言,自然也對JSON格式支持很好。
    2018-10-10
  • golang string、int、int64 float 互相轉換方式

    golang string、int、int64 float 互相轉換方式

    這篇文章主要介紹了golang string、int、int64 float 互相轉換方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • Go語言實戰(zhàn)之實現(xiàn)一個簡單分布式系統(tǒng)

    Go語言實戰(zhàn)之實現(xiàn)一個簡單分布式系統(tǒng)

    如今很多云原生系統(tǒng)、分布式系統(tǒng),例如?Kubernetes,都是用?Go?語言寫的,這是因為?Go?語言天然支持異步編程。本篇文章將介紹如何用?Go?語言編寫一個簡單的分布式系統(tǒng),需要的小伙伴開業(yè)跟隨小編一起學習一下
    2022-10-10
  • Go映射的使用

    Go映射的使用

    Go提供了另一個重要的數(shù)據(jù)類型,稱為map,它將唯一鍵映射到值,本文主要介紹了Go映射的使用,包括聲明映射、初始化映射、操作映射等,感興趣的可以了解一下
    2023-11-11
  • Go語言并發(fā)技術詳解

    Go語言并發(fā)技術詳解

    這篇文章主要介紹了Go語言并發(fā)技術詳解,本文講解了goroutine、channels、Buffered Channels、Range和Close等內容,需要的朋友可以參考下
    2014-10-10
  • 一文帶你深入了解Go語言中切片的奧秘

    一文帶你深入了解Go語言中切片的奧秘

    切片是數(shù)組的一個引用,因此切片是引用類型。但自身是結構體,值拷貝傳遞。本文將通過示例帶大家一起探索一下Go語言中切片的奧秘,感興趣的可以了解一下
    2022-11-11
  • Go通道channel通過通信共享內存

    Go通道channel通過通信共享內存

    這篇文章主要為大家介紹了Go通道channel通過通信共享內存示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07
  • Go本地測試小技巧解耦任務拆解

    Go本地測試小技巧解耦任務拆解

    這篇文章主要為大家介紹了Go本地測試解耦任務拆解及溝通詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • 構建Golang應用最小Docker鏡像的實現(xiàn)

    構建Golang應用最小Docker鏡像的實現(xiàn)

    這篇文章主要介紹了構建Golang應用最小Docker鏡像的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-05-05

最新評論