gods/README.md
2015-03-05 20:12:13 +01:00

1.6 KiB

Build Status

GoDS (Go Data Structures)

Implementation of various data structures in Go.

Implementations

  • Sets:
    • HashSet (unordered)
    • TreeSet (ordered)
  • Stacks:
    • LinkedListStack
    • ArrayStack
  • Maps:
    • HashMap (unordered)
    • TreeMap (ordered)
  • Tree:
    • RedBlackTree

Motivations

Collections and data structures found in other languages: Java Collections, C++ Standard Template Library (STL) containers, Qt Containers, etc.

Goals

  • Fast algorithms:
    • Based on decades of knowledge and experiences of other libraries mentioned below.
  • Memory efficient algorithms:
    • Avoiding to keep consume memory by using optimal algorithms and data structures for the given set of problems.
  • Easy to use library:
    • Well-structued library with minimalistic set of atomic operations from which more complex operations can be crafted.
  • Stable library:
    • Only additions are permitted keeping the library backward compatible.
  • Solid documentation and examples:
    • TODO
  • Production ready:
    • TODO

There is often a tug of war between speed and memory when crafting algorithms. We choose to optimize for speed in most cases within reasonable limits on memory consumption.

Testing and Benchmarking

go test -v -bench . -benchmem -benchtime 1s ./...

License

Copyright (c) Emir Pasic, All rights reserved.

GNU Lesser General Public License Version 3, see LICENSE for more details.