Bibliotecile Hash pentru programatorii C

click fraud protection

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

Dezvoltat de Troia D. Hanson, orice structură C poate fi stocată într-un tabel cu 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. Utilizează chei de int, string și binare.

Judy este o bibliotecă C care implementează un tablou dinamic rar. Judy matrice sunt declarate pur și simplu cu un nul ac indicator și consumă memorie numai atunci când este populat. 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 tablele cu dimensiuni dinamice, tablele asociative sau o interfață simplă de utilizat, care nu necesită reelaborare pentru expansiune sau contracție și poate înlocui multe structuri de date obișnuite, cum ar fi tablouri, tablouri rare, tabele hash, arbori B, arbori binari, liste liniare, planuri de schi, alți algoritmi de sortare și căutare și numărare funcții.

instagram viewer

SGLIB este scurt pentru Biblioteca simplă generică și constă dintr-un singur fișier antet sglib.h care oferă implementarea generică a celor mai frecventi algoritmi pentru tablouri, liste, liste sortate și arbori roșii-negri. 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, precum numele câmpului „următorul” pentru listele legate.

instagram story viewer