OSDN Git Service

Merge pull request #201 from Bytom/v0.1
[bytom/vapor.git] / vendor / github.com / tendermint / tmlibs / common / heap.go
diff --git a/vendor/github.com/tendermint/tmlibs/common/heap.go b/vendor/github.com/tendermint/tmlibs/common/heap.go
deleted file mode 100644 (file)
index 4a96d7a..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-package common
-
-import (
-       "container/heap"
-)
-
-type Comparable interface {
-       Less(o interface{}) bool
-}
-
-//-----------------------------------------------------------------------------
-
-/*
-Example usage:
-       h := NewHeap()
-
-       h.Push(String("msg1"), 1)
-       h.Push(String("msg3"), 3)
-       h.Push(String("msg2"), 2)
-
-       fmt.Println(h.Pop())
-       fmt.Println(h.Pop())
-       fmt.Println(h.Pop())
-*/
-
-type Heap struct {
-       pq priorityQueue
-}
-
-func NewHeap() *Heap {
-       return &Heap{pq: make([]*pqItem, 0)}
-}
-
-func (h *Heap) Len() int64 {
-       return int64(len(h.pq))
-}
-
-func (h *Heap) Push(value interface{}, priority Comparable) {
-       heap.Push(&h.pq, &pqItem{value: value, priority: priority})
-}
-
-func (h *Heap) Peek() interface{} {
-       if len(h.pq) == 0 {
-               return nil
-       }
-       return h.pq[0].value
-}
-
-func (h *Heap) Update(value interface{}, priority Comparable) {
-       h.pq.Update(h.pq[0], value, priority)
-}
-
-func (h *Heap) Pop() interface{} {
-       item := heap.Pop(&h.pq).(*pqItem)
-       return item.value
-}
-
-//-----------------------------------------------------------------------------
-
-///////////////////////
-// From: http://golang.org/pkg/container/heap/#example__priorityQueue
-
-type pqItem struct {
-       value    interface{}
-       priority Comparable
-       index    int
-}
-
-type priorityQueue []*pqItem
-
-func (pq priorityQueue) Len() int { return len(pq) }
-
-func (pq priorityQueue) Less(i, j int) bool {
-       return pq[i].priority.Less(pq[j].priority)
-}
-
-func (pq priorityQueue) Swap(i, j int) {
-       pq[i], pq[j] = pq[j], pq[i]
-       pq[i].index = i
-       pq[j].index = j
-}
-
-func (pq *priorityQueue) Push(x interface{}) {
-       n := len(*pq)
-       item := x.(*pqItem)
-       item.index = n
-       *pq = append(*pq, item)
-}
-
-func (pq *priorityQueue) Pop() interface{} {
-       old := *pq
-       n := len(old)
-       item := old[n-1]
-       item.index = -1 // for safety
-       *pq = old[0 : n-1]
-       return item
-}
-
-func (pq *priorityQueue) Update(item *pqItem, value interface{}, priority Comparable) {
-       item.value = value
-       item.priority = priority
-       heap.Fix(pq, item.index)
-}