Structura de date C map [închis] (Programare, C, Hashmap)

Udara S.S Liyanage a intrebat.

Vreau să implementez o structură de date cu perechi de valori cheie în C. Vreo idee?

Comentarii

  • Ce se mapează cu ce? De ce funcții aveți nevoie? –  > Por Rafe Kettler.
  • Mapare din int în int. EX 1 -> 2 3 -> 5 -> 5 –  > Por Udara S.S Liyanage.
  • stackoverflow.com/questions/4384359/… – –  > Por Ciro Santilli新疆棉花TRUMP BAN BAD.
3 răspunsuri
Carlos Daniel Gadea Omelchenko

Acest lucru este o implementare simplă a unui tabel hash în ANSI C. Acesta suportă funcțiile rudimentare așteptate în general de la un tabel hash:

  • Inserarea și recuperarea asociațiilor cheie-valoare
  • Interogarea existenței unei chei
  • returnarea numărului total de asociații cheie-valoare.
  • Enumerarea tuturor asociațiilor cheie-valoare

Sperăm că acest lucru vă va fi de ajutor!

Comentarii

  • De fapt, ca să fiu puțin pedant, nu este vorba de ANSI C, deoarece definește funcții ale căror nume încep cu „str”. Nu puteți face asta, întregul spațiu al numelor de funcții globale care încep cu „str” este rezervat. –  > Por unwind.
  • Nu-mi place, pentru că nu specifică codul sursă al funcțiilor și nu pare să se extindă sau să se micșoreze. Are doar un număr fix de elemente. – user13831085
sitaram chhimpa

Dacă partea de cheie și partea de valoare sunt de același tip de date, atunci puteți utiliza o matrice 2-D cu 2 coloane, unde prima coloană va fi cheia și a doua va fi datele.IT se va comporta ca o hartă, dar complexitatea timpului va fi diferită.Complexitatea timpului :căutare – O(n)Inserare -se dorește menținerea unei chei unice, atunci O(n)altfel O(1).

int map[N][2];

dacă doriți să aveți o pereche cheie-valoare de tip diferit, atunci puteți utiliza structura de listă.

struct node
{
int key;  //key part
string value;  // value part
struct node *next;
};

Complexitatea în timp :căutare – O(n)Insert – dacă se dorește menținerea unei chei unice, atunci O(n)altfel O(1).

Comentarii

  • Upvote pentru indicatorul de complexitate a timpului. –  > Por Gewure.
Nikopol

Funcțiile tipice de hartă sunt, de asemenea, suportate de implementarea hashmap din libmba.

Am aflat despre ea cu ceva timp în urmă, deși nu am folosit-o. Puteți verifica, de asemenea, proiectul de bibliotecă pagina de pornire.

Sper că se poate dovedi util pentru cineva.

Tags:,