আচ্ছা, डेटा स्ट्रक्चर! জটিল শোনাচ্ছে, তাই না? ভাবুন তো, আলমারি গোছানোর মতো। জামাকাপড়গুলো যদি এলোমেলোভাবে ফেলে রাখেন, তাহলে দরকারের সময় খুঁজে পাওয়া কি সহজ হবে? নিশ্চয়ই না। ডেটা স্ট্রাকচারও অনেকটা তাই। ডেটা মানে তথ্য, আর স্ট্রাকচার মানে কাঠামো। তথ্যগুলোকে সুন্দর করে সাজিয়ে রাখলে, সেগুলো ব্যবহার করা অনেক সহজ হয়ে যায়।

ধরুন, আপনার একটা বিশাল লাইব্রেরি আছে। সেখানে যদি বইগুলো কোনো নিয়ম ছাড়া রাখা হয়, তাহলে হুমায়ূন আহমেদের হিমু সমগ্র খুঁজতে আপনার পুরো দিন লেগে যেতে পারে! কিন্তু যদি বইগুলো বিষয় অনুযায়ী সাজানো থাকে – যেমন, কবিতা এক দিকে, উপন্যাস অন্য দিকে, আর নাটকের বইগুলো আলাদা তাকে – তাহলে কাজটা কত সহজ হয়ে যায়, তাই না? ডেটা স্ট্রাকচার ঠিক এই কাজটাই করে।

অ্যারে (Array): যেন সারি সারি সিট!

অ্যারে হলো ডেটা স্ট্রাকচারের সবচেয়ে সহজ রূপ। এটা অনেকটা সিনেমা হলের মতো। প্রত্যেকটা সিটের একটা নম্বর থাকে, তাই না? আপনি যদি জানতে চান, ৫ নম্বর সিটে কে বসে আছে, তাহলে সহজেই সেই সিটে গিয়ে দেখতে পারবেন। অ্যারেতেও প্রত্যেকটা ডেটার একটা নম্বর (ইনডেক্স) থাকে। সেই নম্বর দিয়ে আপনি সহজেই ডেটা খুঁজে বের করতে পারবেন।

"অ্যারে অনেকটা ট্রেনের কামরার মতো," বলছিলেন আমার এক বন্ধু, শুভ। "প্রত্যেকটা বগিতে যেমন আলাদা আলাদা যাত্রী থাকে, তেমনি অ্যারের প্রত্যেকটা ঘরে আলাদা আলাদা ডেটা থাকে।"

লিঙ্কড লিস্ট (Linked List): যেন সাপের খেলা!

লিঙ্কড লিস্ট একটু অন্যরকম। এটা অনেকটা সাপের মতো। সাপের যেমন একটার পর একটা অংশ জোড়া লেগে থাকে, তেমনি লিঙ্কড লিস্টের প্রত্যেকটা ডেটা তার পরের ডেটার সঙ্গে যুক্ত থাকে। কিন্তু সাপের মতো এখানে ডেটাগুলো এলোমেলোভাবে ছড়িয়ে থাকতে পারে, সিরিয়ালি থাকার দরকার নেই। প্রত্যেকটা ডেটা জানে, তার পরে কোন ডেটাটা আছে।

একবার ভাবুন তো, আপনার কাছে অনেকগুলো কাগজের টুকরো আছে, আর প্রত্যেকটা টুকরোর ওপর লেখা আছে পরের টুকরোটা কোথায় আছে। তাহলে আপনি একটা কাগজের টুকরো থেকে আরেকটা, তারপর আরেকটা – এভাবে সবগুলোতে যেতে পারবেন। লিঙ্কড লিস্ট অনেকটা এইরকম।

ট্রি ডেটা স্ট্রাকচার - ১ [Basic Concept]ট্রি ডেটা স্ট্রাকচার - ১ [Basic Concept]

ট্রি (Tree): যেন বংশবৃক্ষ!

ট্রি ডেটা স্ট্রাকচারটা দেখতে গাছের মতো। গাছের যেমন একটা মূল থাকে, আর সেই মূল থেকে অনেকগুলো শাখা-প্রশাখা বের হয়, তেমনি ট্রি ডেটা স্ট্রাকচারেও একটা মূল নোড থাকে, আর সেই নোড থেকে অনেকগুলো চাইল্ড নোড বের হয়।

ধরুন, আপনি আপনার পরিবারের বংশতালিকা তৈরি করছেন। প্রথমে আপনার দাদার নাম, তারপর আপনার বাবার নাম, তারপর আপনার নাম – এভাবে সাজালে সেটা একটা ট্রি স্ট্রাকচার হয়ে যাবে। ট্রি ডেটা স্ট্রাকচার ব্যবহার করে খুব সহজে তথ্যের মধ্যে সম্পর্ক স্থাপন করা যায়।

Trees | Part-1 | Introduction | Data Structure | Bengali - YouTubeTrees | Part-1 | Introduction | Data Structure | Bengali - YouTube

হ্যাশ টেবিল (Hash Table): যেন পোস্ট অফিসের বাক্স!

হ্যাশ টেবিল অনেকটা পোস্ট অফিসের বাক্সের মতো। প্রত্যেকটা বাক্সের একটা নির্দিষ্ট নম্বর থাকে, আর সেই নম্বরের বাক্সে নির্দিষ্ট কিছু চিঠি রাখা হয়। হ্যাশ টেবিলে প্রত্যেকটা ডেটার জন্য একটা কি (Key) থাকে, আর সেই কি ব্যবহার করে ডেটাটা কোথায় আছে, সেটা খুঁজে বের করা যায়।

ধরুন, আপনার কাছে অনেকগুলো চিঠি আছে, আর আপনি প্রত্যেকটা চিঠির ওপর প্রাপকের নাম লিখে রেখেছেন। এখন যদি আপনি জানতে চান, "রহিম" নামের ব্যক্তির চিঠিটা কোথায় আছে, তাহলে আপনি খুব সহজেই সেই চিঠিটা খুঁজে বের করতে পারবেন। হ্যাশ টেবিল ঠিক এই কাজটাই করে।

শেষ কথা

ডেটা স্ট্রাকচার হয়তো প্রথমে একটু কঠিন লাগতে পারে, কিন্তু একটু ভালো করে দেখলে বুঝবেন যে এটা আমাদের দৈনন্দিন জীবনের মতোই সহজ। সবকিছু গুছিয়ে রাখলে যেমন কাজ করতে সুবিধা হয়, তেমনি ডেটা স্ট্রাকচার ব্যবহার করে ডেটাগুলোকে গুছিয়ে রাখলে প্রোগ্রামিং করাটা অনেক সহজ হয়ে যায়। তাই, ভয় না পেয়ে বরং একটু মজা করে ডেটা স্ট্রাকচার শেখা শুরু করুন! কে জানে, হয়তো একদিন আপনিও বিল গেটস এর মতো বড় প্রোগ্রামার হয়ে যাবেন!