Hash-kirjastot C-ohjelmoijille

Tällä sivulla on luettelo kirjastokokoelmasta, joka auttaa sinua ohjelmoinnissa C: ssä. Tässä olevat kirjastot ovat avoimen lähdekoodin tietoja, joita käytetään tietojen tallentamiseen ilman, että sinun täytyy kääntää omia linkitettyjä luetteloita jne. Tietorakenteita.

Kehittäjä Troy D. Hanson, mikä tahansa C-rakenne voidaan tallentaa hash-taulukkoon käyttämällä uthash. Sisällytä vain #include "uthash.h" ja lisää sitten UT_hash_handle rakenteeseen ja valitse yksi tai useampi rakenteesi kenttä toimimaan avaimena. Käytä sitten HASH_ADD_INT, HASH_FIND_INT ja makroja tallentaaksesi, hakeaksesi tai poistaa kohteita hash-taulukosta. Se käyttää int-, merkkijono- ja binaarinäppäimiä.

Judy on C-kirjasto, joka toteuttaa harvan dynaamisen taulukon. Judy taulukot ilmoitetaan yksinkertaisesti nollalla osoitin ja kuluttavat muistia vain asuttaessaan. Ne voivat kasvaa, jos halutaan käyttää kaikkia käytettävissä olevia muistia. Judyn tärkeimmät edut ovat skaalautuvuus, korkea suorituskyky ja muistin tehokkuus. Sitä voidaan käyttää dynaamisesti kooltaan taulukkoihin, assosiatiivisiin ryhmiin tai yksinkertaiseen käyttöliittymään, joka ei vaadi uusintaa laajennusta tai supistusta varten ja joka voi korvata monia yleiset tietorakenteet, kuten taulukot, harvat taulukot, hash-taulukot, B-puut, binaaripuut, lineaariset luettelot, ohituslistat, muut lajittelu- ja hakualgoritmit ja laskenta toiminnot.

instagram viewer

SGLIB on lyhenne sanoista Simple Generic Library, ja koostuu yhdestä otsikkotiedostosta sglib.h, joka tarjoaa yleisimpien taulukkojen, luetteloiden, lajiteltujen luetteloiden ja puna-mustien puiden algoritmien yleisen toteutuksen. Kirjasto on yleinen, eikä se määrittele omia tietorakenteita. Pikemminkin se vaikuttaa olemassa oleviin käyttäjän määrittelemiin tietorakenteisiin yleisen käyttöliittymän kautta. Se ei myöskään varaa tai varaa mitään muistia eikä ole riippuvainen mistään tietystä muistinhallinnasta.

Kaikki algoritmit toteutetaan makrojen muodossa, jotka parametrisoidaan datarakenteen ja vertailutoiminnon tyypin (tai vertailumakron) perusteella. Joitakin algoritmeja ja tietorakenteita varten voidaan tarvita useita muita yleisiä parametreja, kuten linkitetyille luetteloille seuraavan kentän nimi.