2016-06-27 02:21:09 +00:00
// Copyright (c) 2015, Emir Pasic. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
2015-03-07 18:23:43 +00:00
2016-06-25 16:17:48 +00:00
// Package trees provides an abstract Tree interface.
2016-06-25 15:02:21 +00:00
//
// In computer science, a tree is a widely used abstract data type (ADT) or data structure implementing this ADT that simulates a hierarchical tree structure, with a root value and subtrees of children with a parent node, represented as a set of linked nodes.
//
// Reference: https://en.wikipedia.org/wiki/Tree_%28data_structure%29
2015-03-07 18:23:43 +00:00
package trees
2017-02-27 01:46:04 +00:00
import (
"github.com/emirpasic/gods/containers"
"github.com/emirpasic/gods/utils"
)
2015-03-07 18:23:43 +00:00
2016-06-24 19:52:16 +00:00
// Tree interface that all trees implement
2016-06-22 01:09:48 +00:00
type Tree interface {
2017-02-27 01:46:04 +00:00
Comparator ( ) utils . Comparator
New ( ) Tree
Iterator ( ) containers . ReverseIteratorWithKey
Put ( key interface { } , value interface { } )
Remove ( key interface { } )
Get ( key interface { } ) ( interface { } , bool )
Keys ( ) [ ] interface { }
2016-06-22 01:09:48 +00:00
containers . Container
2015-03-07 18:23:43 +00:00
// Empty() bool
// Size() int
// Clear()
// Values() []interface{}
}