Wednesday, September 23, 2015

Queue

Queue data structure দুইটি বেসিক property মেনে কাজ করে।

  • যদি list এ কোন element add হয় তাহলে তা last এর দিক দিয়ে এ্যাড হবে।
  • যদি list থেকে কোন element বের করতে হয়, তাহলে তা সামনে থেকে বের হবে।

জিনিসটা অনেকটা বাসে উঠার জন্য যাত্রীদের লাইনের মত চিন্তা করা যেতে পারে। নতুন কেউ আসলে লাইনের পিছনে দাঁড়াবে এবং যে সামনে আছে সে সবার আগে বাসে উঠবে।

Monday, September 21, 2015

Stack

Stack হল এমন একটি ডাটাস্ট্রাকচার যা, দুইটি নীতি মেনে চলে।

  • Stack এ কোন element insert হলে শেষে দিয়ে insert হবে।
  • কোন element ফেলে/বের করে দিতে হলে last থেকে বের করে দিতে হবে। এই জন্য এইটাকে বলা হয় LIFO. Last in First Out. যে সবার শেষে insert হবে, সে সবার আগে বের হবে।

Stack এর স্ট্রাকচার নিচের ফিগারগুলা দেখে সহজে বুঝা যায়,

Stack

Stack

Capture

Friday, September 18, 2015

Linked list

Data structure এর একদম বেসিক একটা জিনিস হল Linked list.
Linked list এবং Array প্রায় একই রকম কাজ করে। তবে তাদের operation, memory এর উপর ভিত্তি করে কিছু সুবিধা অসুবিধা আছে।

  • Array ব্যবহার এর শুরুতে কতগুলো ব্লক নিয়ে কাজ করব তা ডিক্লেয়ার করে দিতে হয়। এবং পুরো প্রোগ্রাম জুড়ে সেই সাইজ একই থাকে, পরিবর্তন করা যায় না। Linked list এ যখন প্রয়োজন শুধু তখনেই ব্লক এ্যাড করা হয়, তাতে মেমরি অপচয় হয় না।
  • Array তে যেখানে index access করা যায়, Linked list এ তা করা যায় না।
  • Array তে যেকোন পজিশনে এলিমেন্ট insert/delete করা অনেক কষ্টসাধ্য ও complexity বেশি, কিন্তু Linked list দিয়ে তা সহজে করে ফেলা যায়।

Basic Structure:

Linked list এ প্রতিটা ব্লক দুইটি অংশে বিভক্ত। এক অংশে থাকে ডাটা, আরেক অংশে থাকে পরর্বতী ব্লকের address. এইভাবে ব্লক পরর্বতী ব্লকের address সেভ রেখে একটি list এর মত কাঠামো গঠন করে। একটি Linked list দেখতে নিচের fig এর মত হবে।

Popular posts