mirror of
https://github.com/golang/go
synced 2024-10-03 06:21:21 -06:00
container/heap: Simplify the example.
Using append simplifies the code and makes it work if the initial capacity of the slice is smaller than the number of items pushed. R=golang-dev, gri CC=golang-dev https://golang.org/cl/6869060
This commit is contained in:
parent
2cb715a8b3
commit
cfc0a59d6e
@ -37,15 +37,10 @@ func (pq PriorityQueue) Swap(i, j int) {
|
||||
func (pq *PriorityQueue) Push(x interface{}) {
|
||||
// Push and Pop use pointer receivers because they modify the slice's length,
|
||||
// not just its contents.
|
||||
// To simplify indexing expressions in these methods, we save a copy of the
|
||||
// slice object. We could instead write (*pq)[i].
|
||||
a := *pq
|
||||
n := len(a)
|
||||
a = a[0 : n+1]
|
||||
n := len(*pq)
|
||||
item := x.(*Item)
|
||||
item.index = n
|
||||
a[n] = item
|
||||
*pq = a
|
||||
*pq = append(*pq, item)
|
||||
}
|
||||
|
||||
func (pq *PriorityQueue) Pop() interface{} {
|
||||
|
Loading…
Reference in New Issue
Block a user