දත්ත ව්‍යුහ

thumb|315x315පික්|A hash table.(හෑෂ් වගුවක්)
පරිගණක විද්‍යාවේදී  දත්ත ව්‍යුහයක්  යනු දත්ත පරිගණක තුල ගබඩා කිරීමේ ක්‍රමවේදයක් වේ. මෙමගින් එම දත්ත වලට
ප්‍රවේශ වීම හා එම දත්ත සංස්කරණය කාර්යක්‍ෂම ලෙස සිදුකල හැකිය.
ඉතා නිවැරදි ලෙස ගතහොත් , දත්ත වලින් සමන්විත දත්ත එකතුවක් දත්ත ව්‍යුහයක් ලෙස හඳුන්වයි එසේම ඒවා අතර   සබැඳියාවක්  මෙන්ම විවිධාකාරයෙන් 
එම දත්ත මෙහෙයවුම් මගින් හැසිරවීම් ද ඒවා සමග කළ හැකිය..

## භාවිතාව 
දත්ත ව්‍යුහ තුල තනි හෝ  එකකට වැඩි දත්ත ප්‍රවර්ග  තිබිය හැකිය.  එමගින් දත්ත ව්‍යුහ මත කළහැකි මෙහෙයවුම් සහ  එමගින් ඉටු කළහැකි 
ගණිත කර්මවල සංකීර්ණත්වය විශේශිකරණය කළ හැකිය.විවිධාකාර දත්ත ව්‍යුහ විවිධාකාර යෙදුම් වලට යෝග්‍ය වේ. ඒවා අතරින් සමහරක් ඉතා විෂේශිත කර්තව්‍යන් සඳහා වේ.

උදාහරණයක් ලෙස පරිගණක භාෂා සම්පාදක යෙදුම් සාමාන්යෙන් හෑෂ් ටේබල් විචල්‍යයන් තෝරාබේරා ගන්නා අතරේ   දත්ත සමුදා  සාමාන්‍යන් B-Tree indexes දත්ත නැවත ලබාගැනීමේදී  යොදාගනී 
ඉහත උදාහරණයේ  හෑෂ් ටේබල් , B-Tree වැනි විවිධ දත්ත ව්‍යුහ විවිධ දත්ත ව්‍යුහ විවිධ කාර්යයන් සඳහා යොදාගනී.

 විශාල දත්ත සමුදා පාදක සහ අන්තර්ජාල සුචිකරණ සේවා  වැනි  විශාල ප්‍රමාණයේ දත්ත කාර්යක්‍ෂම ලෙස කළමනාකරණයේදී  ඒ සඳහා දත්ත ව්‍යුහ මගින් ක්‍රමවේද සපයයි.
සාමාන්‍යයෙන්  කාර්යක්‍ෂම දත්ත ව්‍යුහ භාවිතය කාර්යක්‍ෂම ඇල්ගොරිතම නිර්මාණයට  ඉතා වැදගත්  සාධකයකි.

ඇතැම් විධිමත් නිර්මාණ ක්‍රමවේද සහ පරිගණක භාෂා අවධාරණය කොටම කියා සිටිනවා, ඇල්ගොරිතම වලටත් වඩා දත්ත ව්‍යුහ යනු මෘදුකාංග නිර්මාණයේ ප්‍රධාන සංවිධාන සාධකයක් ලෙස.ප්‍රධාන මතකයේත් , ද්විතීයක මතකයේත් දත්ත තැන්පත් කිරීමටත් නැවත ලබාගැනීමටත් දත්ත ව්‍යුහ යොදාගත හැකිය.  

## ක්‍රියාවට නැංවීම 
 දත්ත ව්‍යුහ සාමාන්‍යයෙන් දත්ත ගෙනහැර ගැනීමටත්  දත්ත ගබඩා කිරීමටත්  හැකියාවෙන් යුක්තය මේ සඳහා පොයින්ටර් යොදාගනු ලබනවා මෙහිදී යොදාගනු ලබන්නේ 
අදාළ දත්තය ගබඩාවී ඇති භෞතික මතක කෝටසට අදාළ මතක ලිපිනයයි.

## නිදසුන් 
විවිධාකාරයේ දත්ත ව්‍යුහ පවතී මේවා බොහෝ විට "මූලික දත්ත ප්‍රරුප" (primitive data types)  හා බැඳී පවතී.

* අරාව,අරාවක් යනු විෂේශිත පිළිවලකට පෙළගස්වන ලද  දත්ත  පෙළකි. මෙහි දත්ත වලට ප්‍රවේශ වීමට 0 සිට n ගණනක් ලෙස ගැනෙන සුචියක් භාවිත කරයි. මෙහි දත්තයන්ගේ   දත්ත ප්‍රවර්ගය එකම  වර්ගයක් හෝ  වෙනත් වෙනත් දත්ත ප්‍රවර්ග එකම අරාවක තිබිය හැකිය මෙය පරිගණක භාෂාව අනුව වෙනස් වෙයි. අරාවන්  හි  ප්‍රමාණය  වෙනස්කල හැකි හෝ   කළ නොහැකි විය හැකිය.
* *සම්බන්ධ ලැයිස්තුව* මේවා ලැයිස්තු යනුවෙන්ද හඳුන්වයි. මෙහි රේඛිය දත්ත එකතුවක්  අඩංගුය  මෙම දත්ත නෝඩ්  යනුවෙන් හඳුන්වයි. මෙම එක්  එක් නෝඩ්   එක සඳහා අගයක් සහ මේවා එකිනෙකට සම්බන්ධව පවතී. මෙම දත්ත ව්‍යුහයේ  ප්‍රධාන වාසියනම්  මෙහි දත්ත ඉතා පහසුවෙන් ඇතුලත් කිරීම සහ   ඉවත් කිරීම අනෙක් දත්ත ස්ථාන වෙනස් නොකර ඇතුලත් කිරීමට හැකි වීමයි. කෙසේවෙතත් මේ හා සම්බන්ධ ඇතැම් මෙහෙයුම් ක්‍රියාත්මක කිරීමේදී අරාවන්   සම්බන්ධක ලැයිස්තු වලට වඩා ඉදිරියෙන් සිටී . "සසම්භාවී ප්‍රවේශය " එවැනි එක් මෙහෙයුමකි.  
* රෙකෝඩ, මේවාට ටපල් (Tuple) යැයිද කියනු ලැබේ. මේවායේ  දත්ත විවිධ දත්ත ප්‍රරුප වලින් යුතු වේ. මේවායේ පවතිනුයේ ස්ථිර දත්ත  ක්ෂේත්‍ර ප්‍රමාණයකි   ටපල් වල මුලිකාංග ක්ෂේත්‍ර හෝ සාමාජිකයන් ලෙස හඳුන්වයි.
* සමූහ ,රෙකෝඩ මෙන් නොව මෙහි පවතුනුයේ ස්ථිර එක් දත්ත ප්‍රවර්ගයක් පමණි (උදා: පුර්ණ සංඛ්‍යා ) 
* සරණිය(Class) , වස්තු සම්බන්ධිත වැඩසටහන්කරණයේ දී යොදාගන්නා ප්‍රධාන දත්ත වයුහයකි මෙහි දත්ත ක්ෂේත්‍ර ලෙස මෙතඩ්ස් පවතී. 

## පරිගණක භාෂා සහාය 
ඇසෙම්බ්ලි භාෂා සහ  BCPL වැනි පහල මට්ටමේ  භෂාවන් නිතැතින්ම දත්ත ව්‍යුහ සඳහා සහාය දක්වයි.
එසේම උසස් මට්ටමේ පරිගණක භාෂා විශාල ප්‍රමාණයක් සහ MASM වැනි උසස් මට්ටමේ ඇසෙම්බ්ලි භාෂාවන්  
සතුව දත්ත ව්‍යුහ සම්බන්ද විශේෂ පහසුකම් අන්තර්ගත වේ. රෙකොඩ සහ අරාවන් මෙයට උදාහරණ වේ.
 
බොහෝ පරිගණක භාෂාවල යම් ආකාරයක "ලයිබ්රි යාන්ත්‍රණයක් " අන්තර්ගත වේ මේ හරහා විවිධ වැඩසටහන් 
වලට පරිහරණයට ගත හැකි දත්ත ව්‍යුහ නිර්මාණය කළ හැකිය.

## සමුද්දේශ 
## වැඩිදුර කියවුමට 
* Alfred Aho, John Hopcroft, and Jeffrey Ullman, *Data Structures and Algorithms*, Addison-Wesley, 1983, 
* G. H. Gonnet and R. Baeza-Yates, *Handbook of Algorithms and Data Structures - in Pascal and C*, second edition, Addison-Wesley, 1991,  Book
* Ellis Horowitz and Sartaj Sahni, *Fundamentals of Data Structures in Pascal*, Computer Science Press, 1984,