Data Structure in Real Life Application | দৈনন্দিন জীবনে ডেটা স্ট্রাকচার 🔥

স্কুল কলেজে যখন বীজগণিত অংক করতাম তখন চিন্তা করতাম এইসব কি জীবনে কোন দিন কাজে লাগবে! ভার্সিটির প্রথম দিকে যখন প্রোগ্রামিং এবং সফটওয়্যার ডেভেলপমেন্ট সম্পর্কে তেমন কিছুই জানতাম না, তখন Discrete Math নিয়ে ঘাটাঘাটি করার পরও সেইম ফীলিংস হয়েছিল! তবে জীবনে যে এসব নলেজ কাজে লাগে তার অনেক প্রমাণ পেয়েছি, এখনও পাচ্ছি।

ঠিক তেমনই Data Structure and Algorithm শেখার ক্ষেত্রেও এমনটা মনে হতে পারে যে, Real World Application এ কি এসব নলেজ কোন কাজে লাগে? এক কথায় উত্তর - কাজে লাগে। এবং আজকে এমনই কিছু Data Structure এর Real Life Application নিয়ে আলোচনা করবো। আর একজন ভালো সফটওয়্যার ডেভেলপার / ইঞ্জিনিয়ার হতে হলে Data Structure and Algorithm শেখার বিকল্প কোন রাস্তা নেই, এই কথা আসা করি আমরা সবাই জানি। আরেকটি ব্যাপার হচ্ছে - প্রোগ্রামিং শিখতে গেলে অনেকগুলা Data Structure আমাদের এমনিতেই শেখা হয়ে যায়। নিচে কিছু গুরুত্বপূর্ণ ডেটা স্ট্রাকচার এবং তাদের ব্যবহারিক উদাহরণ নিয়ে আলোচনা করা হয়েছে, যা আমাদের বাস্তব জীবনের সাথে সরাসরি সম্পর্কিত।

১. লিস্ট (List)

লিস্ট এমন একটি ডেটা স্ট্রাকচার যেখানে উপাদানগুলো ধারাবাহিকভাবে সাজানো থাকে। বাস্তব জীবনের উদাহরণ হতে পারে আপনার টুইটার ফিড। যখন আপনি টুইট পড়েন, প্রতিটি টুইট আসলে একটি লিস্ট আকারে সাজানো থাকে। একইভাবে, আপনার প্লেলিস্টে গানগুলো সিরিয়ালি সাজানো থাকে ঠিক একটি লিস্টের মতো। আরও উদাহরণ: আপনার ফোনের কন্টাক্ট লিস্ট, যেখানে প্রতিটি কন্টাক্ট ধারাবাহিকভাবে সাজানো থাকে।

২. স্ট্যাক (Stack)

স্ট্যাক এমন একটি ডেটা স্ট্রাকচার যা LIFO (Last In First Out) পদ্ধতিতে কাজ করে। এটি খুব সাধারণ একটি উদাহরণ হল ওয়ার্ড প্রসেসরে Undo/Redo অপশন। আপনি যদি কিছু টাইপ করেন এবং পরে Undo করেন, তাহলে সবশেষে টাইপ করা অংশটি প্রথমে মুছে ফেলা হয়, যেটি একটি স্ট্যাকের মতো কাজ করে। আরও উদাহরণ: একটি প্লেটের স্তূপের কথা চিন্তা করুন, যেখানে আপনি প্রথমে যেটা রাখেন সেটা তুলতে পারবেন সবার শেষে।

৩. কিউ (Queue)

কিউ হল একটি FIFO (First In First Out) ডেটা স্ট্রাকচার, যেখানে প্রথমে আসা উপাদানটি প্রথমে সরানো হয়। উদাহরণ হিসেবে প্রিন্টার জব। আপনি একাধিক ডকুমেন্ট প্রিন্ট করার জন্য কমান্ড দেন, তবে প্রথমে যে ডকুমেন্ট পাঠানো হয়, সেটাই আগে প্রিন্ট হয়। আরও উদাহরণ: বাস টিকেট কাউন্টারের লাইন। যারা লাইনে প্রথমে থাকে তারা আগে টিকেট কিনতে পারে, এবং যারা পরে থাকে তারা পরে সিরিয়াল অনুযায়ী কিনে।

৪. হিপ (Heap)

হিপ একটি ট্রি-ভিত্তিক ডেটা স্ট্রাকচার, যা টাস্কগুলোর মধ্যে অগ্রাধিকার নির্ধারণ করতে ব্যবহৃত হয়। উদাহরণস্বরূপ, টাস্ক শিডিউলিং। ধরা যাক, আপনার কাছে বিভিন্ন টাস্ক আছে এবং প্রতিটি টাস্কের একটি প্রায়োরিটি আছে। আপনি সর্বোচ্চ প্রায়োরিটি দিয়ে টাস্কগুলো সম্পন্ন করতে চান। হিপ ব্যবহার করে আপনি প্রতিটি টাস্কের প্রায়োরিটি অনুযায়ী কাজগুলো দ্রুত করতে পারবেন। আরও উদাহরণ: Heapsort একটি সর্টিং Algorithm যা কোন একটি Array কে Ascending or Descending অর্ডারে সাজানোর জন্য Heap Data Structure ব্যবহার করে।

৫. ট্রি (Tree)

ট্রি হল হায়ারারকিক্যাল ডেটা স্ট্রাকচার যেখানে প্যারেন্ট ও চাইল্ড নোডের মধ্যে সম্পর্ক থাকে। উদাহরণ হিসেবে HTML ডকুমেন্টের গঠন। যখন আপনি একটি ওয়েবপেজ লোড করেন, তার গঠন একটি ট্রির মতো, যেখানে হেডার, বডি, এবং অন্যান্য ট্যাগগুলো একটি নির্দিষ্ট সম্পর্কের মধ্যে থাকে। আরও উদাহরণ: আপনার পরিবারের জেনারেশন চার্ট, যেখানে দাদী-দাদা থেকে বাবা-মা এবং সন্তানদের সম্পর্ক দেখানো হয়।

৬. সাফিক্স ট্রি (Suffix Tree)

সাফিক্স ট্রি মূলত ডকুমেন্টের ভিতরে স্ট্রিং খোঁজার জন্য ব্যবহৃত হয়। উদাহরণস্বরূপ, আপনি একটি বড় ডকুমেন্টে কোনো নির্দিষ্ট শব্দ বা বাক্যাংশ খুঁজতে চান, সাফিক্স ট্রির মাধ্যমে এটি দ্রুত করা সম্ভব। আরও উদাহরণ: যখন আপনি গুগল সার্চ বারে কিছু লিখতে শুরু করেন এবং সঙ্গে সঙ্গে প্রেডিকশন দেখেন।

৭. গ্রাফ (Graph)

গ্রাফ একটি ডেটা স্ট্রাকচার যা বিভিন্ন নোড এবং এজ দ্বারা গঠিত হয়। উদাহরণস্বরূপ, সোশ্যাল মিডিয়ায় বন্ধুত্বের সম্পর্ক। আপনার বন্ধুরা এবং তাদের বন্ধুরা একটি গ্রাফের মতো যুক্ত থাকে। গ্রাফের সাহায্যে সহজেই এই সম্পর্কগুলো বিশ্লেষণ করা যায়। আরও উদাহরণ: গুগল ম্যাপে রাস্তাগুলোকে গ্রাফ হিসেবে কল্পনা করা যেতে পারে। ৮. আর-ট্রি (R-tree) আর-ট্রি হলো একটি স্পেসিয়াল ডেটা স্ট্রাকচার, যা নিকটবর্তী প্রতিবেশী খোঁজার জন্য ব্যবহৃত হয়। উদাহরণস্বরূপ, আপনি যদি গুগল ম্যাপে নিকটস্থ রেস্টুরেন্ট খোঁজেন, R-tree এর সাহায্যে এটি দ্রুত করা সম্ভব। আরও উদাহরণ: গুগল আর্থের মাধ্যমে বিভিন্ন স্থানের মানচিত্র পর্যবেক্ষণ।

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

লেখাটি পড়া শেষ হলে আপনি ভাবতে পারেন - আমি যে লেখাটি একটি টেক্সট এডিটরে লেখেছি সেখানে কি কি Data Structure থাকতে পারে :thinking:
কোন Data Structure যেটা ডেইলি লাইফে ইউস করা অ্যাপ্লিকেশানে ব্যবরিত হয় - আপনার জানা থাকলে অবশ্যই কমেন্টে জানাবেন :pray:

:writing_hand: Abdur Rahman Robin

6 Likes