项目作者: kevinpollet

项目描述 :
(WIP) Data structures implementations in Go
高级语言: Go
项目地址: git://github.com/kevinpollet/go-datastructures.git
创建时间: 2019-07-02T09:32:53Z
项目社区:https://github.com/kevinpollet/go-datastructures

开源协议:MIT License

下载


Go Data Structures

GoDoc Go Report Card

Project to keep track of my learnings and experiments while learning the Go programming language and reviewing the common Abstract Data Types (ADT), data structures, and algorithms.

Installation

  1. $ go get github.com/kevinpollet/go-datastructures

Abstract Data Types & Data Structures

List

  1. type List interface {
  2. Add(value interface{})
  3. Clear()
  4. Get(index int) (interface{}, error)
  5. IndexOf(value interface{}) int
  6. Insert(index int, value interface{}) error
  7. IsEmpty() bool
  8. Remove(index int) (interface{}, error)
  9. Size() int
  10. }

Stack

  1. type Stack interface {
  2. Clear()
  3. IsEmpty() bool
  4. Peek() (interface{}, error)
  5. Pop() (interface{}, error)
  6. Push(value interface{})
  7. Size() int
  8. }

Queue

  1. type Queue interface {
  2. Clear()
  3. IsEmpty() bool
  4. Offer(value interface{})
  5. Peek() (interface{}, error)
  6. Poll() (interface{}, error)
  7. Size() int
  8. }

Dequeue / Double-ended Queue

  1. type Dequeue interface {
  2. Clear()
  3. IsEmpty() bool
  4. OfferFirst(value interface{})
  5. OfferLast(value interface{})
  6. PeekFirst() (interface{}, error)
  7. PeekLast() (interface{}, error)
  8. PollFirst() (interface{}, error)
  9. PollLast() (interface{}, error)
  10. Size() int
  11. }

PriorityQueue

  1. type PriorityQueue interface {
  2. Clear()
  3. IsEmpty() bool
  4. Offer(value interface{}, priority int)
  5. Peek() (interface{}, error)
  6. Poll() (interface{}, error)
  7. Size() int
  8. }

Readings & Lectures

License

MIT