Structuri de Date si Algoritmi in Programare
In acest capitol si in urmatorul vom discuta despre elementele fundamentale din programare care ne fac viata mai usoara atunci cand lucram cu date: structurile de date. La sfarsitul acestui capitol iti va fi mult mai clar ce sunt acestea, unde si cand le poti folosi si mai ales de ce sa le folosesti.
Ce sunt structurile de date?
Structurile de date sunt fix ceea ce sugereaza titlul: structuri de date. Sunt anumite tipuri de date speciale care ne ajuta pe noi sa le structuram si sa le manipulam in functie de obiectivul nostru. Mai exact, structurile de date reprezinta o grupare de date care sunt organizate, stocate si manage-uite cu scopul de face accesul si modificarea (datelor) cat mai eficienta si mai usoara. Fiecare structura de date (ex: stive, cozi, vectori etc.) are un comportament, un mod de acces la date si functii specifice. Utilizarea acestora depinde foarte mult de context si, bineinteles, de problema care se doreste a fi rezolvata. In cele ce urmeaza vom discuta mai multe despre acestea, dar mai intai hai sa vedem de cate tipuri pot fi aceste structuri de date.
Tipuri de structuri de date
Cand vine vorba de structuri de date, avem mai multe tipuri din care putem alege in functie de nevoie. Iti voi enumera cateva dintre cele mai des folosite, dupa care vom incepe sa discutam (si sa le folosim) pe fiecare in parte:
• Listele reprezinta un tip de structuri de date care permit ordonarea si schimbarea elementelor din cadrul ei. Aici pot exista elemente duplicate.
• Tuple (perechi) reprezinta un tip de structuri de date ordonata si neschimbabile. In cadrul ei pot exista elemente duplicate.
• Cozi (queue) reprezinta un tip de structuri de date care aseaza datele in ordinea “primul venit, primul servit” pentru a putea fi procesate.
• Dictionarul reprezinta un tip de structuri de date care nu este ordonata, modificabila si indexata. In cadrul ei nu pot exista elemente duplicate.
• Set-ul (multimile) reprezinta un tip de structuri de date neordonata si neindexata. In cadrul ei nu pot exista elemente duplicate.
Acestea reprezinta structurile de date existente by default in Python. Pe langa acestea mai exista multe altele care fie au fost implementate deja, fie necesita implementare proprie (cum ar fi grafurile, arborii, cozile si altele). In general vei gasi module existente prin care te poti folosi de implementari eficiente ale acestora. Un aspect important pe care trebuie sa-l avem in considerare este faptul ca fiecare structura de date are rolul sau si utilitatea potrivita in anumite contexte.
De exemplu, daca dorim sa stocam mai multe elemente si sa le accesam recurent (prin cautare), ar fi mai util sa utilizam un anumite structuri (dictionare sau multimi), in schimbul altora. De ce? Pentru ca timpii de accesare/cautare sunt mult redusi fata de alte structuri (liste, dictionare, set-uri etc.).
Doresti in continuare sa-ti aprofundezi cunostiintele de Programare? Atunci te invit sa apesi pe acest LINK si sa programezi o discutie de ghidare in IT cu colegii mei de la TeachBit.ro care te vor indruma catre urmatoarea etapa in Programare.
Echipa TeachBit.ro
1) Vectori si liste inlantuite
2) Stive (Stack)
3) Coada (Queue)
4) Dictionar (Dictionary sau Hashtable)
5) Grafuri si algoritmii de cautare DFS si BFS
Curios sa aflii mai multe?
Afla mai multe despre cum poti incepe in Programare prin cursul pe care il oferim aici:
Răspunsuri