Skip to content

max-hoffman/heap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

Golang heaps with default slice support

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages