Bibliotecile Hash pentru programatorii C

Această pagină listează o colecție de biblioteci care vă vor ajuta în programarea în C. Bibliotecile de aici sunt de tip open source și sunt folosite pentru a vă ajuta să stocați datele, fără a fi nevoie să rulați propria listă de legături, etc..

uthash

Dezvoltată de Troy D. Hanson, orice structură C poate fi stocată într-o tabelă de hash folosind uthash. Trebuie doar să includeți #includeți „uthash.h”, apoi adăugați un UT_hash_handle la structură și alegeți unul sau mai multe câmpuri din structura dvs. pentru a acționa ca cheie. Apoi utilizați HASH_ADD_INT, HASH_FIND_INT și macro-uri pentru a stoca, recupera sau șterge elemente din tabelul hash. Folosește chei int, șir și binar.

Judy

Judy este o bibliotecă C care implementează un tablou dinamic rar. Matricele Judy sunt declarate pur și simplu cu un indicator nul și consumă memorie doar atunci când sunt populate. Dacă se dorește, pot utiliza toată memoria disponibilă. Avantajele cheie ale lui Judy sunt scalabilitatea, performanța ridicată și eficiența memoriei. Poate fi utilizat pentru tablouri cu dimensiuni dinamice, tablouri asociative sau o interfață simplă de utilizat, care nu necesită reelaborare pentru extindere sau contracție și poate înlocui multe structuri de date obișnuite, cum ar fi tablele, tablele sparse, tabelele hash, arbori B, binare arbori, liste liniare, planuri de schi, alți algoritmi de sortare și căutare și funcții de numărare.

SGLIB

SGLIB este scurt pentru Biblioteca simplă generică și constă dintr-un singur fișier antet sglib.h care oferă implementarea generică a celor mai comune algoritmi pentru tablouri, liste, liste sortate și arbori roșu-negru. Biblioteca este generică și nu își definește propriile structuri de date. Mai degrabă acționează asupra structurilor de date existente definite de utilizator printr-o interfață generică. De asemenea, nu alocă și nu alocă nicio memorie și nu depinde de nicio gestionare a memoriei.

Toți algoritmii sunt implementați sub formă de macro-uri parametrizate de tipul de structură de date și funcția de comparare (sau macrocomparatorul). Câțiva algoritmi și structuri de date pot fi necesari mai mulți parametri generici, cum ar fi numele câmpului „următor” pentru listele legate.