Generic-Data-Structures
sc
Generic-Data-Structures | sc | |
---|---|---|
3 | 17 | |
34 | 2,168 | |
- | - | |
8.5 | 6.3 | |
13 days ago | 29 days ago | |
C | C | |
MIT License | BSD 3-clause "New" or "Revised" License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Generic-Data-Structures
-
Sources to learn Data structure implementation in C
This GitHub repo: https://github.com/pavlosdais/Abstract-Data-Types is great! It uses void pointers and dynamic memory to store any kind of data type. Also, I'm currently working on a repository myself! Here's the link: https://github.com/saulvaldelvira/Generic-Data-Structures It also has the same approach, void pointers and dynamic memory, for versatility. Those are the ones I known. About documentation/Books, i don't really know about any that are focused on C. What I use for my repo is basically my notes for university. But the internet is huge! There are tons of Data Structures tutorials focused on C. Good Luck!
-
I love C
A lot of it is indented, e.g. linked_list.h begins:
sc
- A simple hash table in C
- Advice for bigger c projects?
- sc - Common libraries and data structures for C
-
Hacker News top posts: May 17, 2022
Common libraries and data structures for C\ (107 comments)
-
Common libraries and data structures for C
Can someone tell me what is this line from sc_signal.c:247 in sc/signal/
If the way it is used requires the user to break the abstraction/encapsulation and manually buffer some fields in order not to break the data structure and leak memory, I would call that a bug.
There is one use of sc_array_clear() in the test code [1] which really makes it look as if it is being used in a way that I think (again, I haven't single-stepped this code, only read it) leaks memory.
I agree on the pain of everything being macros, it's more pain than it's worth I think and will likely lead to code duplication (and more pain in debugging, probably).
I would even go so far as to think that this kind of single-file design, where each file is independent of the others, makes it harder and more annoying to implement more complicated data structures.
[1]: https://github.com/tezc/sc/blob/master/array/array_test.c#L3...
-
Uthash – C macros for hash tables and more
https://github.com/tezc/sc/tree/master/map
For those who are interested in faster hashmaps, I tried bunch of hashmaps and this one performs better than others. This is for C. Maybe C++ has better hashmaps.
What are some alternatives?
CC - A small, usability-oriented generic container library.
frr - The FRRouting Protocol Suite
Collections-C - A library of generic data structures for the C language.
wazero - wazero: the zero dependency WebAssembly runtime for Go developers
Melon - A generic cross-platform C library that includes many commonly used components and frameworks, and a new scripting language interpreter. It currently supports C99 and Aspect-Oriented Programming (AOP).
chibicc - A small C compiler
Abstract-Data-Types - A set of efficient data structures in C, created in a generic way
stage0 - A set of minimal dependency bootstrap binaries
pottery - Pottery - A container and algorithm template library in C
gcc
libderp - C collections. Easy to build, boring algorithms. Dumb is good.
uthash - C macros for hash tables and more