ECN>> avl>> 返回
项目作者: hslam

项目描述 :
Package avl implements an AVL tree.
高级语言: Go
项目地址: git://github.com/hslam/avl.git
创建时间: 2020-10-26T15:34:48Z
项目社区:https://github.com/hslam/avl

开源协议:MIT License

下载


avl

PkgGoDev
Build Status
codecov
Go Report Card
LICENSE

Package avl implements an AVL tree.

Benchmark

insertdelete

searchiterate

Get started

Install

  1. go get github.com/hslam/avl

Import

  1. import "github.com/hslam/avl"

Usage

Example

  1. package main
  2. import (
  3. "fmt"
  4. "github.com/hslam/avl"
  5. )
  6. func main() {
  7. tree := avl.New()
  8. str := String("Hello World")
  9. tree.Insert(str)
  10. fmt.Println(tree.Search(str))
  11. tree.Delete(str)
  12. }
  13. type String string
  14. func (a String) Less(b avl.Item) bool {
  15. return a < b.(String)
  16. }

Output

  1. Hello World

Iterator Example

  1. package main
  2. import (
  3. "fmt"
  4. "github.com/hslam/avl"
  5. )
  6. func main() {
  7. tree := avl.New()
  8. l := "MNOLKQPHIA"
  9. for _, v := range l {
  10. tree.Insert(String(v))
  11. }
  12. iter := tree.Min()
  13. for iter != nil {
  14. fmt.Printf("%s\t", iter.Item())
  15. iter = iter.Next()
  16. }
  17. }
  18. type String string
  19. func (a String) Less(b avl.Item) bool {
  20. return a < b.(String)
  21. }

AVL Tree

avl

Output

  1. A H I K L M N O P Q

License

This package is licensed under a MIT license (Copyright (c) 2020 Meng Huang)

Author

avl was written by Meng Huang.