Strukturat e te dhenave

Sot do diskutojme rreth strukturave te te dhenave ose sic quhen ne gjuhen angleze "Data Structures". 
Kompjuteri eshte nje makineri qe punon me te dhena. Programet kompjuterike punojne me te dhena, funksjoni baze i programeve kompjuterike eshte te marrin, perpunojne, transformojne te dhenat.  Te dhenat jane nje pjese shume e rendesishme e informatikes.

Qe te mos kemi konfuzione se pari te shpjegojme cfare kuptojme me fjalen "te dhena".
Me fjalen "te dhena" duhet te kuptojme informacione: nje numer mund te jete nje e dhene, nje varg numrash mund te jete nje e dhene, nje shkronje mund te jete nje e dhene, nje varg shkronjash mund te jete nje e dhene. Cdo informacion mund te perfaqesohet nga nje kombinim i shkronjave. Shkronjat numnd te perfaqesohen nga kombinime numrash, qe do te thote se cdo informacion mund te perfaqesohet nga nje kombinim numrash. Kompjuteri nuk kupton shkronja, kompjuteri kupton vetem numra, 0 dhe 1 me sakte.  Me ane te ketyre dy numrave neve mund te perfaqesojme cdo numer, dhe me ane te numrave mund te perfaqesojme cdo shkronje, dhe me ane te shkronjave mund te ndertojme cdo fjale, me ane te fjaleve fjali, me fjalite paragrafe, faqe, libra, bibloteka etj.. Pra, me ane te numrave neve mund te perfaqesojme cdo informacion.

Menyra se si jane organizuar informacionet ne memorien kompjuterine perfaqeson nje strukture me te dhena. Organizimi i te dhenave na mundeson qe te kryejme veprime me te dhenat ne menyre efikase. 
Psh te supozojme qe kemi nje varg me numra: 1478523690 dhe duam te gjeme numrin 0. Per te gjetur numrin 0 kompiuterit i duhet te marri te gjitha numrat me rradhe dhe ti verifikoje nese eshte numri qe ai kerkon apo jo, ne rastin tone kompjuteri duhet te beje 10 verifikime gjerisa te gjeje numrin 0. Imagjinoni tani nese numrat do ishin organizuar ndryshe, do ishin organizuar ne formen: 0123456789 per te gjetur numrin 0 kompjuteri duhet te beje vetem nje verifikim. Pra menyra e organizimit te informacionit ka shume renesi per kompjuterin, mund tja lehtesoje punen ose tja beje me te veshire, dhe kompjuterit do i duhet me shume kohe per te mbaruar nje pune te caktuar.

Nuk existon nje menyre organizimi universale qe ti lehtesoje punen kompjuterit ne te gjitha rrethanat. Existojne menyra organizimi te ndryshme, qe mund ti lehtesojne punen kompiuterit per rrethana te ndyshme. Detyra jone eshte te mesojme menyrat e organizimt te te dhenave dhe rrethanat ne te cilat ato i lehtesojne punen kompjuterit dhe ti perdorim me mend. Menyra e organizimit te informacionit formon ate qe quhet STRUKTURE, Struktura e informacionit pra STRUKTURA E TE DHENAVE.

Strukturat e te dhenave jane menyra se si informacioni eshte organizuar ne memorien kompjuterike. 

Strukturat e te dhenave perdoren shpesh ne aloritmike, dhe gjithmone do i gjeni bashke ne titullin ne anglisht "Data Structures and Algorithms". Sic eshte shpjeguar me larte, strukturat e te dhenave mund te shpejtojne ose ngadalesojne nje algoritm. Prandaj eshte esenciale te dime cfare strukture u japim te dhenave tona sepse mund te ndikojne rende perfomancen e aplikacioneve te cilat neve i shkruajme. Ne fund te fundit asnjeri nuk do nje makine llogaritese qe i duhet 4 ore per te mbledhur 2 numra. 

Te https://en.wikipedia.org/wiki/List_of_data_structures  do gjeni nje liste me te gjitha strukturat e te dhenave. Njihen mbi 100 sturkturash te dhenash deri sot. Ne jeten reale nuk do arrini asnjehere ti perdorni te gjitha, por do perdorni shumicen prej tyre. Disa nga strukturat e te dhenave me te perdorura jane: Array, Stack, Queue, Singly-Linked List, Doubly-Linked List, Skip List, Hash Table, Binary Search Tree, Cartezian Tree, B-Tree, Red-Black Tree, Splay Tree, AVL Tree, KD Tree. Ky blog do shpjegoje ne detaje se si funksjonojne disa nga me te perdoruat struktura te te dhenave, ne artikujt qe do vijojne.