github.com/gogf/gf@v1.16.9/.example/container/gtree/gtree_avltree.go (about)

     1  package main
     2  
     3  import (
     4  	"fmt"
     5  
     6  	"github.com/gogf/gf/container/gtree"
     7  	"github.com/gogf/gf/util/gutil"
     8  )
     9  
    10  func main() {
    11  	tree := gtree.NewAVLTree(gutil.ComparatorInt)
    12  	for i := 0; i < 10; i++ {
    13  		tree.Set(i, i*10)
    14  	}
    15  	// 打印树形
    16  	tree.Print()
    17  	// 前序遍历
    18  	fmt.Println("ASC:")
    19  	tree.IteratorAsc(func(key, value interface{}) bool {
    20  		fmt.Println(key, value)
    21  		return true
    22  	})
    23  	// 后续遍历
    24  	fmt.Println("DESC:")
    25  	tree.IteratorDesc(func(key, value interface{}) bool {
    26  		fmt.Println(key, value)
    27  		return true
    28  	})
    29  }