You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This library provides common data structures. It will also provide some data structures which needed in render or game engines. In the future I'll try to optimize memmory access.
There may multiple way to implement a data structure but I tried to implement best way to do that. For instance Red-Black Trees are only implemented as top down insertion/deletion to make it faster.
There are some convenient constructors for common use cases. For instance rb_newtree_str() creates new rb-tree that uses strings as key, rb_newtree_ptr() creates new rb-tree that uses pointers as key. When you use these functions to alloc a data structure then you don't need to provide compare or print functions.
This library prodives allocator api so you can override default allocator.
quick sort implementation for float, double, i32, u32, i64, u64
queue (working on this)
stack
binary heap / priority queue
dynamic array
octree
quadtree
kd-tree
bvh
b-tree
Build
Unix (Autotools)
$ sh autogen.sh
$ ./configure
$ make
$ make check # [Optional]
$ [sudo] make install # [Optional]
Windows (MSBuild)
Windows related build, project files are located in win folder,
make sure that you are inside in the libds/win folder.
Code Analysis are enabled, it may take awhile to finish build
$ cd win
$ .\build.bat
if msbuild didn't work then you can try to build it with devenv: