Documentation
¶
Overview ¶
Example ¶
// Create a new min-heap map. hmMin := NewMin[uint, string, int]() // Insert some entries. hmMin.Set(1, "John", 42) hmMin.Set(2, "Jane", 43) hmMin.Set(3, "Joe", 44) // Peek at the entry with the highest priority. e, ok := hmMin.Peek() if ok { fmt.Printf("%d: %s\n", e.Key, e.Value) } // Remove the entry with the highest priority. e, ok = hmMin.Pop() if ok { fmt.Printf("%d: %s\n", e.Key, e.Value) } // Check the length of the heap map. fmt.Printf("Len: %d\n", hmMin.Len()) // Check if the heap map is empty. fmt.Printf("Empty: %t\n", hmMin.Empty()) // Check if the heap map contains a key. fmt.Printf("Contains(1): %t\n", hmMin.Contains(1)) fmt.Printf("Contains(2): %t\n", hmMin.Contains(2)) fmt.Printf("Contains(3): %t\n", hmMin.Contains(3)) // Overwrite an entry. hmMin.Set(3, "Joey", 45) // Get the new entry. e, ok = hmMin.Get(3) if ok { fmt.Printf("%d: %s\n", e.Key, e.Value) } // Create a new max-heap map. hmMax := NewMax[uint, string, int]() // Insert all entries from the min-heap map into the max-heap map. for _, e := range hmMin.Entries() { hmMax.Set(e.Key, e.Value, e.Priority) } // Get the entry with the highest priority. e, ok = hmMax.Peek() if ok { fmt.Printf("%d: %s\n", e.Key, e.Value) } // Remove the entry with key 3. hmMax.Remove(3) // Get the entry with the highest priority. e, ok = hmMax.Peek() if ok { fmt.Printf("%d: %s\n", e.Key, e.Value) } // Clear the heap map. hmMax.Clear() // Check the length of the heap map. fmt.Printf("Len: %d\n", hmMax.Len())
Output: 1: John 1: John Len: 2 Empty: false Contains(1): false Contains(2): true Contains(3): true 3: Joey 3: Joey 2: Jane Len: 0
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Entry ¶
type Entry[K comparable, V any, P cmp.Ordered] struct { Key K Value V Priority P // contains filtered or unexported fields }
type HeapMap ¶
type HeapMap[K comparable, V any, P cmp.Ordered] interface { Len() int Empty() bool Peek() (Entry[K, V, P], bool) Pop() (Entry[K, V, P], bool) Get(key K) (Entry[K, V, P], bool) Set(key K, value V, priority P) Contains(key K) bool Remove(key K) Clear() Keys() []K Values() []V Entries() []Entry[K, V, P] }
Click to show internal directories.
Click to hide internal directories.