jweinst1
5/1/2016 - 10:41 PM

an appendable intlist struct in go that uses maps as its implementations

an appendable intlist struct in go that uses maps as its implementations

package main
//file to implement expanding/shrinking intlist with a map
import "fmt"

type IntList struct {
	list map[int]int
	//for keeping track of placement indices and insertion spots
	record map[string]int
}

//creates an IntList and returns it
func createIntList() IntList {
	lst := IntList{list:make(map[int]int), record:make(map[string]int)}
	lst.record["insert"] = 0
	lst.record["last"] = -1
	return lst
}
//appends a new element to the end of the list, and updates the insertion and last element positions
func (il IntList) push(elem int) {
	il.list[il.record["insert"]] = elem
	il.record["insert"] += 1
	il.record["last"] += 1
}


func main() {
  tester := createIntList()
  tester.push(5)
  fmt.Println(tester)
  //{map[0:5] map[last:0 insert:1]}
}