Stack (abstract data type)

පරිගණක විද්‍යාවේදී,  Stack යනුවෙන් හැදින්වෙන්නේ   වියුක්ත දත්ත වර්ගයකි (abstract data type). එය සරල අවයව වල එකතුවක් ලෙස ක්‍රියා කරයි. එහි මූලික ක්‍රියාදාම දෙකකි : Push ක්‍රියාදාමය ( අවයවයක් Stack එකකට එකතු කිරීමට) Pop ක්‍රියාදාමය ( අවසානයටම  Stack එකට එකතු කල එහෙත් මින් පෙර ඉවත් කර නොමැති අවයවය ඉවත් කිරීමට) . Stack හී අවයව ඉවත් වන පිළිවෙල සැලකීමේදී  එය අන්වර්ථ නාමයකින්ද හැදින්වෙයි , LIFO  (Last In, First Out) : අවසානයටම එකතු වන අවයවය ප්‍රථමයෙන්ම ඉවත් වන නිසාවෙන්. ඊට අමතරව ,  peek ක්‍රියාදාමය මගින් Stack හී ඉහලින්ම රැදී තිබෙන අවයවය Stack හී වෙනසක් නොවෙන පරිදි පරිශීලනය කල හැක.

"Stack" යන නාමය සෑදී ඇත්තේ "එක මත එක සකස්වූ" යන්න පැහැදිලි වෙන අයුරිනි. එහිදී Stack සැකසුමේ ඉහලින්ම ඇති යමක් ගැනීම පහසු වන අතර, එහෙත් Stack හි පහලින් ඇති යමක් ගැනීමට නම් ප්‍රථමයෙන් එයට ඉහලින් ඇති අවයව ඉවත් කල යුතු වෙයි.Cormen, Thomas H.; Leiserson, Charles E.; Rivest, Ronald L.; Stein, Clifford (2009) [1990]. 

Stack  යනු රේඛීය දත්ත ව්‍යුහයකි (linear data structure), Stack හී පවතින push සහ pop ක්‍රියාදාම Stack දත්ත ව්‍යුහයේ එක් අන්තයකින් පමණක් සිදුවෙයි, එම අන්තය Stack හී ඉහල අන්තය ලෙස හැදින්වෙයි( Top of the stack). එම සැකැස්ම නිසා මෙම දත්ත ව්‍යුහය එහි ඉහලින්ම ඇති අවයවයට පිහිටුම් දක්වනයක් (pointer) ඇති  singly linked list එකක් ලෙස ගොඩනැගිය හැක.

Stack දත්ත ව්‍යුහය සීමා සහිත ධාරිතාවක් යුතුව ගොඩනැගිය හැක. යම් Stack වියුහයක් එහි ධාරිතාවය පරිපුර්ණ නම් එයට තව අවයවයක් එකතු කිරීමට අවශ්‍යය හිස් ඉඩක් නොමැති නම් එම Stack ව්‍යුහය පිටාර ගලා යන තත්වයේ (overflow state) පවතිය් යයි සැලකිය හැක. 

 See also 

 References