tree

package
v0.0.6 Latest Latest
Warning

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

Go to latest
Published: Apr 2, 2022 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BinarySearchTree

type BinarySearchTree[T comparable] struct {
	*BinaryTree[T]
	// contains filtered or unexported fields
}

func NewBinarySearchTree

func NewBinarySearchTree[T comparable](c comparator.Comparator[T], e ...T) *BinarySearchTree[T]

func (*BinarySearchTree[T]) Delete

func (bst *BinarySearchTree[T]) Delete(e T) error

func (*BinarySearchTree[T]) Insert

func (bst *BinarySearchTree[T]) Insert(e T)

func (*BinarySearchTree[T]) Search

func (bst *BinarySearchTree[T]) Search(e T) (bool, error)

type BinaryTree

type BinaryTree[T comparable] struct {
	// contains filtered or unexported fields
}

func NewBinaryTree

func NewBinaryTree[T comparable](e ...T) *BinaryTree[T]

func (*BinaryTree[T]) BottomViewIterator

func (bt *BinaryTree[T]) BottomViewIterator() iterator.Iterator[T]

TODO FIX EXPENSIVE IMPLEMENTATION

func (*BinaryTree[T]) Clear

func (bt *BinaryTree[T]) Clear()

func (*BinaryTree[T]) Clone

func (bt *BinaryTree[T]) Clone() Tree[T]

func (*BinaryTree[T]) Count

func (bt *BinaryTree[T]) Count() int

func (*BinaryTree[T]) Delete

func (bt *BinaryTree[T]) Delete(e T) error

func (*BinaryTree[T]) DeleteCompare

func (bt *BinaryTree[T]) DeleteCompare(e T, c comparator.Comparator[T]) error

func (*BinaryTree[T]) Diameter

func (bt *BinaryTree[T]) Diameter() int

func (*BinaryTree[T]) Empty

func (bt *BinaryTree[T]) Empty() bool

func (*BinaryTree[T]) Equal

func (bt *BinaryTree[T]) Equal(t Tree[T]) (bool, error)

func (*BinaryTree[T]) Height

func (bt *BinaryTree[T]) Height() int

func (*BinaryTree[T]) InOrderIterator

func (bt *BinaryTree[T]) InOrderIterator() iterator.Iterator[T]

func (*BinaryTree[T]) InOrderSuccessor

func (bt *BinaryTree[T]) InOrderSuccessor(e T) (T, error)

func (*BinaryTree[T]) Insert

func (bt *BinaryTree[T]) Insert(e T)

func (*BinaryTree[T]) InsertCompare

func (bt *BinaryTree[T]) InsertCompare(e T, c comparator.Comparator[T])

func (*BinaryTree[T]) Invert

func (bt *BinaryTree[T]) Invert()

func (*BinaryTree[T]) IsBalanced

func (bt *BinaryTree[T]) IsBalanced() bool

func (*BinaryTree[T]) IsComplete

func (bt *BinaryTree[T]) IsComplete() bool

func (*BinaryTree[T]) IsFull

func (bt *BinaryTree[T]) IsFull() bool

func (*BinaryTree[T]) IsPerfect

func (bt *BinaryTree[T]) IsPerfect() bool

func (*BinaryTree[T]) LeftViewIterator

func (bt *BinaryTree[T]) LeftViewIterator() iterator.Iterator[T]

func (*BinaryTree[T]) LevelOrderIterator

func (bt *BinaryTree[T]) LevelOrderIterator() iterator.Iterator[T]

func (*BinaryTree[T]) LevelOrderSuccessor

func (bt *BinaryTree[T]) LevelOrderSuccessor(e T) (T, error)

func (*BinaryTree[T]) LowestCommonAncestor

func (bt *BinaryTree[T]) LowestCommonAncestor(a, b T) (T, error)

func (*BinaryTree[T]) Mirror

func (bt *BinaryTree[T]) Mirror() (bool, error)

func (*BinaryTree[T]) MirrorAt

func (bt *BinaryTree[T]) MirrorAt(e T) (bool, error)

func (*BinaryTree[T]) Mode

func (bt *BinaryTree[T]) Mode() (list.List[T], error)

func (*BinaryTree[T]) Paths

func (bt *BinaryTree[T]) Paths() ([][]T, error)

func (*BinaryTree[T]) PostOrderIterator

func (bt *BinaryTree[T]) PostOrderIterator() iterator.Iterator[T]

func (*BinaryTree[T]) PostOrderSuccessor

func (bt *BinaryTree[T]) PostOrderSuccessor(e T) (T, error)

func (*BinaryTree[T]) PreOrderIterator

func (bt *BinaryTree[T]) PreOrderIterator() iterator.Iterator[T]

func (*BinaryTree[T]) PreOrderSuccessor

func (bt *BinaryTree[T]) PreOrderSuccessor(e T) (T, error)

func (*BinaryTree[T]) RightViewIterator

func (bt *BinaryTree[T]) RightViewIterator() iterator.Iterator[T]

func (*BinaryTree[T]) RotateLeft

func (bt *BinaryTree[T]) RotateLeft() error

func (*BinaryTree[T]) RotateLeftAt

func (bt *BinaryTree[T]) RotateLeftAt(e T) error

func (*BinaryTree[T]) RotateRight

func (bt *BinaryTree[T]) RotateRight() error

func (*BinaryTree[T]) RotateRightAt

func (bt *BinaryTree[T]) RotateRightAt(e T) error

func (*BinaryTree[T]) Search

func (bt *BinaryTree[T]) Search(e T) (bool, error)

func (*BinaryTree[T]) SearchCompare

func (bt *BinaryTree[T]) SearchCompare(e T, c comparator.Comparator[T]) (bool, error)

func (*BinaryTree[T]) Symmetric

func (bt *BinaryTree[T]) Symmetric() bool

func (*BinaryTree[T]) TopViewIterator

func (bt *BinaryTree[T]) TopViewIterator() iterator.Iterator[T]

TODO FIX EXPENSIVE IMPLEMENTATION

func (*BinaryTree[T]) VerticalViewIterator

func (bt *BinaryTree[T]) VerticalViewIterator() iterator.Iterator[T]

TODO FIX EXPENSIVE IMPLEMENTATION

type Tree

type Tree[T comparable] interface {
	Insert(e T)
	Delete(e T) error
	Search(e T) (bool, error)

	Count() int
	Height() int
	Diameter() int
	Empty() bool

	Clear()
	Clone() Tree[T]

	IsFull() bool
	IsBalanced() bool
	IsPerfect() bool
	IsComplete() bool

	LowestCommonAncestor(a, b T) (T, error)

	Paths() ([][]T, error)

	// TEMPORARY
	Mode() (list.List[T], error)
	Equal(t Tree[T]) (bool, error)

	InOrderSuccessor(e T) (T, error)
	PreOrderSuccessor(e T) (T, error)
	PostOrderSuccessor(e T) (T, error)
	LevelOrderSuccessor(e T) (T, error)

	PreOrderIterator() iterator.Iterator[T]
	PostOrderIterator() iterator.Iterator[T]
	InOrderIterator() iterator.Iterator[T]
	LevelOrderIterator() iterator.Iterator[T]

	VerticalViewIterator() iterator.Iterator[T]
	LeftViewIterator() iterator.Iterator[T]
	RightViewIterator() iterator.Iterator[T]
	TopViewIterator() iterator.Iterator[T]
	BottomViewIterator() iterator.Iterator[T]
}

Jump to

Keyboard shortcuts

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