func priorityqueueExample2() {
	pq := priorityqueue.New().WithMinHeap(false)
	values := []string{"benjamin", "alice", "john", "tom", "bill"}
	for _, v := range values {
		pq.Add(v)
	}
	for _, v := range values {
		fmt.Printf("pq.Contains(%v) = %t\n", v, pq.Contains(v))
	}
	fmt.Printf("pq.Remove(john) = %t\n", pq.Remove("john"))
	for pq.Peek() != nil {
		fmt.Printf("pq.Peek() = %v\n", pq.Peek())
		fmt.Printf("pq.Poll() = %v\n", pq.Poll())
	}
}
priorityqueueExample2 demos how to reverse order for the build-in data types.
package main
import (
	"fmt"
	"github.com/ahrtr/gocontainer/queue/priorityqueue"
)
func priorityqueueExample1() {
	pq := priorityqueue.New()
	values := []string{"benjamin", "alice", "john", "tom", "bill"}
	for _, v := range values {
		pq.Add(v)
	}
	for _, v := range values {
		fmt.Printf("pq.Contains(%v) = %t\n", v, pq.Contains(v))
	}
	fmt.Printf("pq.Remove(john) = %t\n", pq.Remove("john"))
	for pq.Peek() != nil {
		fmt.Printf("pq.Peek() = %v\n", pq.Peek())
		fmt.Printf("pq.Poll() = %v\n", pq.Poll())
	}
}