Skip to content

Latest commit

 

History

History
32 lines (27 loc) · 826 Bytes

README.md

File metadata and controls

32 lines (27 loc) · 826 Bytes

Golang Default Heaps

Toy repo with implicit support for default slice types. The main drawback is having to use slice pointers.

Currently supported:

  • *[]int
  • *[]string

Helper method IsSupported will return false if this library cannot heap sort the type. A bit of effort codegen'ing default slice harnesses would make it easy to support an arbitrary list of types.

Implementation falls back to standard library for types that implement heap.Interface (standard library heap, not this one). Heap helper methods will panic if the type passed !IsSupported and does not implement heap.Interface.

Usage:

	h := []int{5, 7, 1, 3}
	Init(&h)
	Push(&h, 3)
	min := Pop(&h)
	fmt.Printf("minimum: %d\n", Pop(&h))
	for len(h) > 0 {
		fmt.Printf("%d ", Pop(&h))
	}
	// Output:
	// minimum: 1
	// 1 2 3 5