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