මොනවද මේ Data Structures කියන්නේ?

April 29, 2022 | Prabhani Devindya

මොනවද මේ Data Structures කියන්නේ?

Data Structures (දත්ත ව්‍යුහයන් ) යනු දත්ත සංවිධානය කිරීම, සැකසීම, ලබාගැනීම සහ ගබඩා කිරීම සදහා වූ විශේෂ ආකෘතියකි.

පරිගණක විද්‍යාවේ සෑම අංශයකම පාහේ දත්ත ව්‍යුහයන් බහුලව භාවිතා වේ. එනම් මෙහෙයුම් පද්ධතිය, සම්පාදක නිර්මාණ, කෘතිම බුද්ධිය, graphics සහ තවත් බොහෝ දේ ඒ අතරට අයත් වේ.

බොහෝ පරිගණක විද්‍යා algorithm වල ප්‍රධාන කොටස ලෙස දත්ත ව්‍යුහයන් භාවිතා වන්නේ ඒවා ක්‍රමලේඛකයින්ට දත්ත කාර්යක්ෂමව හැසිරවීමට උපකාරී වන බැවිනි. මෘදුකාංගයක හෝ වැඩසටහනක කාර්ය සාධනය ඉහල නැංවීම සදහා එය වැදගත් කාර්යභාරයක් ඉටුකරයි. දත්ත ව්‍යුහයන් භාවිතා කිරීම පමණක් නොව, එක් එක් කාර්යය සඳහා නිසි දත්ත ව්‍යුහය තෝරා ගැනීම ද වැදගත් වේ. නුසුදුසු දත්ත ව්‍යුහයක් තේරීම නිසා ධාවන වේලාවන් මන්දගාමී වීම හෝ කේතයන් ප්‍රතිචාර නොදැක්වීමට හේතු විය හැක.

දත්ත ව්‍යුහයක් තෝරාගැනීමේදී සලකා බැලිය යුතු කරුණු කිහිපයක් පහත දැක්වේ.

1.කුමන ආකාරයේ තොරතුරු ගබඩා කරනු ඇත්ද?

2. එම තොරතුරු භාවිතා කරන්නේ කෙසේද?

3.දත්ත නිර්මාණය කිරීමෙන් පසුව පැවතිය යුතු හෝ තබා ගත යුත්තේ කොතැනද?

4.දත්ත සංවිධානය කිරීමට හොඳම ක්‍රමය කුමක්ද?

5.මතකය සහ ගබඩා වෙන්කිරීම් කළමනාකරණයේ කුමන අංශ සලකා බැලිය යුතුද?

Data Structures භාවිතා කරන්නේ කෙසේද?

Data Structures කාර්යක්ෂම මෘදුකාංග සැලසුම් කිරීමේ තීරණාත්මක කොටසකි. ඔවුන් algorithms සැලසුම් කිරීමේදී සහ එම algorithms පරිගණක වැඩසටහන් තුළ භාවිතා කරන ආකාරය සම්බන්ධයෙන් තීරණාත්මක කාර්යභාරයක් ඉටු කරයි.


Fortran, C සහ C++ වැනි මුල් කාලීන programming language ක්‍රමලේඛකයින්ට ඔවුන්ගේම දත්ත ව්‍යුහයන් නිර්වචනය කිරීමට හැකි විය. වර්තමානයේ, බොහෝ Programming languagesහි කේත සහ තොරතුරු සංවිධානය කිරීම සඳහා ගොඩනඟන ලද දත්ත ව්‍යුහයන්ගෙන් සමන්විත පුළුල් එකතුවක් ඇතුළත් වේ. උදාහරණයක් ලෙස, Python lists සහ dictionaries, සහ JavaScript array සහ objects යනු තොරතුරු ගබඩා කිරීමට හා retrieve කිරීමට භාවිත කරන පොදු කේතකරණ ව්‍යුහයන් වේ.

Storing data, Managing resourses & services, Data exchange, Ordering & Sorting, Indexing, Searchings, Scalability යනාදියෙහි Data structures භාවිතා වේ.

දත්ත ව්‍යුහයන් වර්ග

යම් අවස්ථාවක භාවිතා කරන දත්ත ව්‍යුහ වර්ගය තීරණය වන්නේ අවශ්‍ය වන මෙහෙයුම් වර්ගය හෝ යෙදෙන ඇල්ගොරිතම වර්ග අනුවය. දත්ත ව්‍යුහ වර්ග කිහිපයක් පහත දැක්වේ.

Storing data, Managing resourses & services, Data exchange, Ordering & Sorting, Indexing, Searchings, Scalability යනාදියෙහි Data structures භාවිතා වේ.

~ Array - Array එකක් යනු එකම වර්ගයේ data elements එකතු කර ඒවා යාබද memory location වල ගබඩා කරන රේඛීය දත්ත ව්‍යුහයකි.


~ Stack - Stack යනු Last In First Out (LIFO) principle එක අනුගමනය කරන රේඛීය දත්ත ව්‍යුහයකි. මෙයින් අදහස් කරන්නේ stack එක තුළට ඇතුළු කර ඇති අවසාන data element එක පළමුව ඉවත් කරන බවයි.


~ Queue - Queue යනු Stacks වලට තරමක් සමාන වියුක්ත(abstract) දත්ත ව්‍යුහයකි. එක් අන්තයක් සෑම විටම දත්ත ඇතුළු කිරීමට (enqueue) භාවිතා කරන අතර අනෙක් කෙළවර දත්ත ඉවත් කිරීමට (dequeue) භාවිතා කරයි. Queue, First-in-First-out ක්‍රමවේදය අනුගමනය කරයි, එනම්, පළමුව ගබඩා කර ඇති data element එක පළමුව ප්‍රවේශ වීමයි.


~ Linked List - Linked list යනු link හරහා එකට සම්බන්ධ කර ඇති දත්ත ව්‍යුහයන්ගේ අනුපිළිවෙලකි. සෑම link එකක්ම වෙනත් link එකකට සම්බන්ධ වේ.

~ Tree - Tree එකක වියුක්ත, ධූරාවලි ආකාරයෙන් elements එකතුවක් ගබඩා කරයි. සෑම node එකක්ම main value එකක් සමඟ සම්බන්ධ වී ඇති අතර, parent node එකක් , child node හෝ sub node එකක් වෙත සම්බන්ධ කර ඇත. ගසේ ඇති සියලුම node වල ප්‍රධාන වශයෙන් එක් root node එකක් ඇත.


~ Heap - Heap යනු binary tree structure එකකි. මෙම binary treeහි සෑම element එකක්ම heap එකකට ආවේණික properties තෘප්තිමත් කරන නිසා මෙය heap ලෙස හදුන්වන්වයි. Complete binary tree එකක, අවසාන මට්ටම හැර ඇනිකුත් සියලුම මට්ටම් පිරී ඇත. එනම්, අවසාන මට්ටම හැර අනෙකුත් සියලුම මට්ටම්වල nodes වලට child nodes දෙක බැගින් ඇත. Heap එකේ ඇති සෑම node එකකම value key එකක් ඇත. එමගින් heap එක තුල node එකේ පිහිටීම සාපෙක්ෂව පෙන්නුම් කරයි.


~ Graph - Graph යනු node සහ edges වලින් සමන්විත රේඛීය නොවන දත්ත ව්‍යුහයකි. Node සමහර විට vertices ලෙසද හඳුන්වනු ලබන අතර මෙම nodes රේඛා හෝ චාප වලින් සම්බන්ද වී ඇත.

~ Hash table - Hash Table යනු ආශ්‍රිත ආකාරයෙන් දත්ත ගබඩා කරන දත්ත ව්‍යුහයකි. Hash table එකක දත්ත array ආකෘතියකින් ගබඩා කර ඇත. එහිදී සෑම data element එකකටම ආවේණික වූ index value එකක් ඇත. අවශ්‍ය දත්තවල index එක අප දන්නේ නම් දත්ත ප්‍රවේශය ඉතා වේගවත් වේ.

Data Structure වල ලක්ෂණ

Data structures බොහෝ විට ඒවායේ ලක්ෂණ අනුව වර්ගීකරණය කර ඇත. පහත ලක්ෂණ තුන උදාහරණ ලෙස ගත හැක.


1.Linear or non-linear - මෙම ලක්ෂණය විස්තර කරන්නේ දත්ත අයිතම array එකක් (array sequential order)වැනි අනුක්‍රමික අනුපිළිවෙලකට(unordered sequence) හෝ ප්‍රස්ථාරයක් වැනි අනුපිළිවෙලක් නොමැති අනුපිළිවෙලකට සකසන්නේද යන්නයි.


2.Homogeneous or heterogeneous - මෙම ලක්ෂණය විස්තර කරන්නේ, දී ඇති ගබඩාවක ඇති සියලුම දත්ත අයිතම එකම ආකාරයේද යන්නයි. Array එකක ඇති elements වල එකතුව උදාහරණයක් ලෙස දැක්විය හැක.


3.Static or dynamic - මෙම ලක්ෂණය දත්ත ව්‍යුහයන් සම්පාදනය(compile) කරන ආකාරය විස්තර කරයි.


මේ ආකාරයට data structures ඔබගේ programms සදහා භාවිතා කිරීම මගින් කාර්‍යක්ෂමතාව වැඩි කරගත හැක.


සටහන - ප්‍රභානි දේවින්ද්‍යා