ডাটা স্ট্রাকচার
ধর, তোমাকে বললাম যে কমপিউটারের মাধ্যমে দুজন ছাত্রের বয়সের গড় বের করতে। তো তুমি সুন্দর মতো দুটি ভ্যারিয়েবলে দুজন ছাত্রের বয়স ইনপুট নিয়ে তাদের বয়সের যোগফলের সমষ্টিকে ২ দিয়ে ভাগ করে তাদের বয়সের গড় বের করবে এবং প্রিন্ট করবে।
এখন যদি তোমাকে ১০ জন ছাত্রের বয়সের গড় বের করতে বলি? তাহলে তুমি ১০টি ভ্যারিয়েবল নিয়ে তাতে ইনপুট নিবে তাই না? আর যদি তোমাকে বলি যে তুমি ১০০ বা ১৫০ জন ছাত্রের বয়স ইনপুট দিয়ে তাদের বয়সের গড় বের করতে তাহলে? অথবা N সংখ্যক ছাত্রের বয়সের গড় বের করতে যেখানে N হচ্ছে স্বাভাবিক সংখ্যা। তাহলে তুমি কী করবে?
তার মানে ইচ্ছেমতো অনেকগুলো ভ্যারিয়েবল ডিক্লেয়ার করে তাতে ডাটা স্টোর করাটা কোনো ভালো কাজ নয়। ডাটাগুলোকে সুন্দরভাবে সাজিয়ে যদি ফরম্যাটে রাখা যায় তাহলে সেটা নিয়ে কাজ করতে সুবিধা হবে। এই উদাহরণের জন্য সবচেয়ে সহজ ডাটা স্ট্রাকচারটা ব্যবহার করা যায় এবং তার নাম হচ্ছে Array।
ডাটা স্ট্রাকচার কী?
সহজভাবে ডাটা স্ট্রাকচার বলতে বুঝায় নির্দিষ্ট পদ্ধতিতে ডাটাকে সুন্দর ও স্বাবলম্বীভাবে সাজিয়ে রাখা। অর্থাৎ ডাটাকে কমপিউটার মেমোরিতে সংরক্ষণ ও সেগুলোকে প্রসেস করার জন্য Efficient পদ্ধতিতে ডাটাগুলোকে Organize করার নামকেই ডাটা স্ট্রাকচার বলে।
কোনো ডাটা স্ট্রাকচার নিয়ে কাজ করার সময় তোমার মাথায় দুটো জিনিস অবশ্যই মনে রাখতে হবে। প্রথমত, ডাটাগুলোর মধ্যে পারস্পরিক সম্পর্ক বুঝানোর জন্য স্ট্রাকচারের দিক দিয়ে যথেষ্ট সমৃদ্ধ হতে হবে আর দ্বিতীয়ত, এটাকে খুব সহজভাবে সাজাতে হবে যাতে দরকার পরলে সহজেই বের করা যায় এবং কাজটা করতে সময়ের অপচয় না হয়।
ডাটা স্ট্রাকচার কত প্রকার ও কী কী?
ডাটা স্ট্রাকচার মূলত দুই প্রকার
১. লিনিয়ার ডাটা স্ট্রাকচার
২. নন-লিনিয়ার ডাটা স্ট্রাকচার
ডাটা স্ট্রাকচার যেমন দুই প্রকার, ঠিক তেমনি এই দুই প্রকার ডাটা স্ট্রাকচারের মধ্যে পার্থক্যও রয়েছে। নিচে আমরা তার পার্থক্য তুলে ধরেছি।
লিনিয়ার ও নন-লিনিয়ার ডাটা স্ট্রাকচারের পার্থক্য?
লিনিয়ার : লিনিয়ার ডাটা স্ট্রাকচারে ডাটাসমূহ একটি নির্দিষ্ট নিয়মে সাজানো হয়ে থাকে। যেখানে প্রথম ডাটাটি পরবর্তী ডাটার সাথে মিল থাকবে।
এসব ডাটা খুব সহজেই অ্যাক্সেস করা যায় বা খুব সহজেই ডাটাটি হাতের নাগালে পাওয়া যায়। লিনিয়ার ডাটা স্ট্রাকচারের অন্তর্ভুক্ত হলো অ্যারে, স্ট্যাক, কিউ, লিংলিস্ট ইত্যাদি।
নন-লিনিয়ার : নন-লিনিয়ার ডাটা স্ট্রাকচারে ডাটাসমূহ পরস্পর সেভারেল থাকে। নন-লিনিয়ার ডাটা স্ট্রাকচারের উদাহরণ হলো গ্রাফ এবং ট্রি।
ডাটা স্ট্রাকচারের অপারেশনসমূহ কী কী?
ডাটা স্ট্রাকচারের অপারেশনসমূহ হলো
1. Traversing
2. Searching
3. Inserting
4. Deleting
5. Sorting
6. Merging
ডাটা স্ট্রাকচার অপারেশন বলতে বোঝায় কোন ডাটা স্ট্রাকচারে কী কী কাজ করা যায়। অর্থাৎ আমাদের ডাটা স্ট্রাকচারে যেসব ডাটা আছে তাদের নিয়ে আমরা কী কী কাজ করতে পারি। নিচে আমরা ডাটা স্ট্রাকচারের অপারেশনগুলোর কাজ বর্ণনা করেছি।
১. Traversing : এটাকে অন্য কথায় VISITING-ও বলা যেতে পারে। ডাটা স্ট্রাকচারে রাখা সব ডাটাকে ঘুরে দেখে আসাকে Traversing বলে।
২. Searching : এই শব্দটা ইতিমধ্যে আপনারা জানেন। ডাটা স্ট্রাকচারে থাকা তথ্যগুলোকে খুঁজে বের করাকে Searching বলে। কোনো একটি শর্ত বা ক্লু দিয়ে কোনো ডাটা স্ট্রাকচারটি কোন লোকেশনে আছে তা বের করতে সাহায্য করে এই Searching।
৩. Inserting : ইনসার্টিং মানে হচ্ছে প্রবেশ করানো। ডাটা স্ট্রাকচারের মধ্যে নতুন কোনো তথ্য বা রেকর্ড অ্যাড করানোকে Inserting বলে।
৪. Deleting : Deleting-এর মানে হচ্ছে কোনো তথ্য বা রেকর্ডকে মুছে ফেলা।
৫. Sorting : Sorting মানে শ্রেণিবিন্যাস করা। ডাটা স্ট্রাকচারে থাকা সব তথ্যকে নিজের ইচ্ছে অনুযায়ী সাজানোকে Sorting বলে। যেমন ছোট অক্ষরকে বড় করা বা বড় অক্ষরকে ছোট করা ইত্যাদি।
ডাটা স্ট্রাকচার কেন শেখা প্রয়োজন?
আর্টিকেলের ওপরের অংশ পড়ে বুঝতে পারছেন যে ডাটা স্ট্রাকচারের কাজ কী ও ডাটা স্ট্রাকচার কত প্রকার ও কী কী? এবং ডাটা স্ট্রাকচার কোথায় ব্যবহার করি আমরা? তাহলে বুঝতে পারছেন কিছুটা যে ডাটা স্ট্রাকচার কেন শিখব?
আমরা যখন গুগলে কোনো একটা শব্দ বা কোনো কিছু সার্চ দেই তখন দেখি যে আমরা ২ বা ৩টি লেটার/অক্ষর লিখি তখন অটোমেটিক কিছু সাজেশন দেয় গুগল। এটা ইমপ্লিমেন্ট করা যায় Tree Data Structure দিয়ে। যেটা Tree-এর একটা Variation।
আরেকটি উদাহরণ দেওয়া যাক
ধরি, আপনার একটি কোম্পানি আছে এবং মাস শেষে সবাইকে বললেন লাইনে দাঁড়াতে। এখন আপনি পর্যায়ক্রমে একে একে টাকা দেবেন তাই তো। ধরি, করিমের পর রহিম দাঁড়িয়ে আছে তো প্রথমে করিমকে টাকাটা দিলেই তো রহিম আপনার সামনে এসে যাবে অটোমেটিক তাই না। এখন সেই কাজটা যদি কমপিউটারের মাধ্যমে করতে চাই তো তার জন্য ডাটা স্ট্রাকচারের ব্যবহার করতে হবে।
ডাটা স্ট্রাকচার বিষয়টি অনেক বড় তা একটি আর্টিকেলে লিখলে পড়তে পড়তে বরিং ফিল করবেন, তাই এই সম্পর্কে বিস্তারিত অন্য আর্টিকেলে আলোচনা করব।
পরিশেষে আশা করতে পারি সম্পূর্ণ আর্টিকেলটি পড়ার পর বুঝতে পারছেন যে ডাটা স্ট্রাকচার কী ও কেন শেখার প্রয়োজন?
আজকে ডাটা স্ট্রাকচারের বেসিক এতটুকুই আর যদি আপনি কোথায় বুঝতে না পারেন তো কমেন্ট করে জানাবেন আর হ্যাঁ পরবর্তী কোনো বিষয়ে আর্টিকেল চান তাও জানাতে পারেন।








০ টি মন্তব্য