Loading...
Data Structures සහ Algorithms (DSA) ගැන සරල​ව තේරෙන සිංහලෙ​න් දැන ගනිමු

Data Structure (දත්ත ව්‍යුහයක්) යනු Data Store කිරීමට සහ Data Organize කිරීමට භාවිතා කළ හැකි ක්‍රමවේදයකි. තවද, Algorithm (ඇල්ගොරිතමයක්) යනු විශේෂිත ගැටළුවක් විසඳීමට යොදාගන්නා පියවරවල එකතුවකි. Data Structure සහ Algorithms භාවිතයෙන් Efficient සහ Optimized පරිගණක වැඩසටහන් ලිවීමට ඉඩ සලසයි.

DSA Operations

Traversing - Systematic Order එකකට Data Element එකින් එක හරහා අදාල Data Element එක තෙක් ගමන් කිරීම.

Searching – Data Structure එක තුල අවශ්‍ය Data Element එකෙහි Location එක සේවීමේ ක්‍රියාවලිය.

Insertion - Data Structure එකට Data Element එකක් හෝ කිහිපයක් ඇතුළත් කිරීමයි. අවශ්‍යතාවය මත පදනම්ව, New Data එකක් ආරම්භයේ, අවසානයේ හෝ ලබා දී ඇති Location එකට එකතු කළ හැක.

Deletion - Data Structure එකෙන් Data Element එකක් Remove කිරීම.

Sorting - Specific Order එකකට Data Elements Rearrange කිරීමේ කියාවලිය.

Merging – Data Structures කීපයක ඇති Data Elements එක Data Structure එකක් තුලට Combine කිරීමේ කියාවලිය.

Data Structure Types

Stack

Data Structures හි Stacks යනු LIFO (Last-in-First-Out)මූලධර්මය අනුගමනය කරන රේඛීය ආකාරයේ දත්ත ව්‍යුහයක් වන අතර, ඉහලින්ම ඇති දත්ත ව්‍යුහයේ එක් කෙළවරක සිට පමණක් Data Insertion කිරීමට සහ Data Deletion සිදු කිරීමට ඉඩ සලසයි. Stack එක තුල ඉහලින්ම පවතින Data එක (Top most Element) TOP ලෙස හදුන්වනු ලබයි තවද මෙම Structure එක තුලට Data Insertion සිදු කිරීම PUSH ලෙසත්, Data Deletion සිදු කිරීම POP ලෙසත් හැදින්වේ.

ඉහත රූපයේ දැක්වෙන්නේ සරල Stack Data Structure ආකෘතියක් වන අතර, ආරම්භයේදී Stack එක Empty State එකේ පවතී එම අවස්ථාව Empty Stack ලෙස දක්වා ඇත.

දෙවන අවස්ථාවේ Stack එකට 1 යන Data එක Insert කිරීම PUSH ලෙස හැදින්වේ. මෙම අවස්ථාවේ Stack එක තුල ඉහලින්ම පවතින Data එක (Top most Element) වන්නේ 1 වන නිසා TOP එක 1 වේ.

තෙවන අවස්ථාවේ Stack එකට 2 යන Data එක PUSH කිරීම සිදු කරන අතර එම Data Element එක මුලින් PUSH කල Data එකට ඉහලින් Store වනු ලැබේ. මෙහිදී TOP එක 2 ලෙස වෙනස් වේ.

සිව්වන අවස්ථාවේ Stack එකට 3 යන Data එක PUSH කිරීම සිදු කරන අතර එම Data Element එක මුලින් PUSH කල Data Elements දෙකටම ඉහලින් Store වනු ලැබේ. මෙහිදී TOP එක 3 ලෙස වෙනස් වේ.

මේ ආකාරයට PUSH කරන සියලුම Data, අවසානයට PUSH කල  Data එකට ඉහලින් Store වේ.

අවසාන අවස්ථාවේ දැක්වෙන්නේ Stack එක තුලින් Data Element එකක් ඉවත් කිරීම හෙවත් POP එකක් සිදු කරන අවස්ථාවකි. එහිදී Stack එක තුල ඇති TOP Element එක වන 3 Data එක Stack එකෙන් Remove වේ.

Stack Data Structure එක තුලදී Data PUSH කිරීම හා POP කිරීම (Insertion & Deletion) සෑම අවස්ථාවකම එක කෙලවරකින් පමණක් සිදුවේ.

Queue

Queue යනු අන්ත දෙකෙහිම විවෘතව පවතින රේඛීය දත්ත ව්‍යුහයක් වන අතර මෙහි මෙහෙයුම් සිදු කරනු ලබන්නේ First In First Out (FIFO) මූලධර්මයට අනුපිළිවෙලටය. Queue Data Structure එක තුලදී Memory එකට සියලුම PUSH කිරීම් එක් කෙළවරක සහසියලුම POP අනෙක් කෙළවරේ සිදු කරන Structure ලෙසයි.

මෙම Structure එක තුලට Data Insertion සිදු කිරීම Enqueue ලෙසත්, Data Deletion සිදු කිරීම Dequeue ලෙසත් හැදින්වේ. මෙහි විශේෂත්වය වන්නේ මෙම Queue Data Structure එක තුලදී Enqueue කිරීම (Data Insertion)  සිදු වන්නේ Queue එකේ අවසාන කෙලවරට හෙවත් Rear එකට සහ Dequeue කිරීම (Data Deletion) කිරීම සිදු වන්නේ ඉදිරිපස කෙලවර හෙවත් Front එකට වීමයි.

Linked List

Linked List යනු ගතිකලෙස (Dynamically) Data Elements හැසිරවීම සදහා ඇති වඩාත්ම හොද Data Structure එකකි. Linked List එකක් නෝඩයක් (NODE) ලෙස හැඳින්වෙන Data Elements වලින් සමන්විත වේ. තවද සෑම Node එකක් සදහම Fields දෙකකින් තිබෙන අතර එක් Field එකක ඇතුලත් කරන Data එකක් අන්තර්ගත වන අතර, දෙවන Field එක තුල ඊළඟ පවතින  Node එකේ Memory Address එකට Pointer එකක් අන්තර්ගතවේ.

Linked List එකක් තුලට Data Insert කිරීම Structure එකෙහි ඉදිරිපස හෙවත් Head එකට සිදු කරන අතර Data Deletion කිරීම Structure එකෙහි පසුපස හෙවත් Tail එකට සිදු කරනු ලබයි. Linked List එකෙහි ඇති අවසාන Node එකෙන් පසු Structure එක NULL කර ඇත.

මීට අමතරව Circular Queue, Circular Linked List, Graphs, Binary Tree, Binary Search Tree, Heap, Hashing, Matrix, Misc ලෙස Advanced Data Structures පවතින අතර මෙම බොහොමයක් Data Structures අප එදිනෙදා භාවිතා කරන බොහොමයක් Applications & Software තුල Implement කර ඇත.