avlkeydup

package
v0.14.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 26, 2021 License: MIT Imports: 4 Imported by: 0

Documentation

Index

Constants

View Source
const HeightDiff = 1

Variables

This section is empty.

Functions

This section is empty.

Types

type Iterator

type Iterator struct {
	// contains filtered or unexported fields
}

func NewIterator

func NewIterator(n *Node) *Iterator

func NewIteratorWithCap

func NewIteratorWithCap(n *Node, cap int) *Iterator

func (*Iterator) GetNext

func (iter *Iterator) GetNext(cur *Node, idx int) *Node

func (*Iterator) GetNode

func (iter *Iterator) GetNode() *Node

func (*Iterator) GetPrev

func (iter *Iterator) GetPrev(cur *Node, idx int) *Node

func (*Iterator) Key added in v0.7.5

func (iter *Iterator) Key() interface{}

func (*Iterator) Next

func (iter *Iterator) Next() (result bool)

func (*Iterator) Prev

func (iter *Iterator) Prev() (result bool)

func (*Iterator) SetNode

func (iter *Iterator) SetNode(n *Node)

func (*Iterator) ToHead

func (iter *Iterator) ToHead()

func (*Iterator) ToTail

func (iter *Iterator) ToTail()

func (*Iterator) Value

func (iter *Iterator) Value() interface{}

type Node

type Node struct {
	Children [2]*Node

	Key, Value interface{}
	// contains filtered or unexported fields
}

func (*Node) String

func (n *Node) String() string

type TraversalMethod

type TraversalMethod int
const (

	//DLR 先值 然后左递归 右递归 下面同理
	DLR TraversalMethod
	//LDR 先从左边有序访问到右边 从小到大
	LDR
	// LRD 同理
	LRD
	// DRL 同理
	DRL
	// RDL 先从右边有序访问到左边 从大到小
	RDL
	// RLD 同理
	RLD
)

type Tree

type Tree struct {
	Root *Node

	Compare compare.Compare

	RotateLog string
	Count     int
	// contains filtered or unexported fields
}

func New

func New(Compare compare.Compare) *Tree

func (*Tree) Clear

func (tree *Tree) Clear()

func (*Tree) Get

func (tree *Tree) Get(key interface{}) (interface{}, bool)

func (*Tree) GetAround

func (tree *Tree) GetAround(key interface{}) (result [3]interface{})

func (*Tree) GetNode

func (tree *Tree) GetNode(key interface{}) (*Node, bool)

func (*Tree) GetRange

func (tree *Tree) GetRange(k1, k2 interface{}) (result []interface{})

func (*Tree) Iterator

func (tree *Tree) Iterator() *Iterator

func (*Tree) Put

func (tree *Tree) Put(key, value interface{})

func (*Tree) Remove

func (tree *Tree) Remove(key interface{}) (interface{}, bool)

func (*Tree) Size

func (tree *Tree) Size() int

func (*Tree) String

func (tree *Tree) String() string

func (*Tree) Traversal

func (tree *Tree) Traversal(every func(k, v interface{}) bool, traversalMethod ...interface{})

Traversal 遍历的方法 默认是LDR 从小到大 Compare 为 l < r

func (*Tree) Values

func (tree *Tree) Values() []interface{}

Values 返回先序遍历的值

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL