পাইথনে স্ট্যাক – স্ট্যাক / Stack ডেটা স্ট্রাকচার

স্ট্যাক কিঃ স্ট্যাক / Stack হচ্ছে লিনিয়ার ডেটা স্ট্র্যাকচার। স্ট্যাক কিছুটা অ্যারের মতই। তবে এখানে LIFO স্ট্র্যাকচারে ডেটা গুলো রাখা হয়। LIFO এর পূর্ণরুপ হচ্ছে Last In First Out। যেমন ধরি প্লেটের স্ট্যাক। রান্না ঘরে সাধারণত প্লেট গুলো পরিষ্কার করার পর একটার উপর আরেকটা রাখা হয়। প্লেটের স্ট্যাকে যে প্লেটটা সবার শেষে রাখে, তাই তো … Read more

ডেটা স্ট্রাকচার পরিচিতি

ডেটা স্ট্রাকচার কি ডেটা স্ট্রাকচার হচ্ছে ডেটা স্টোর করা এবং সাজিয়ে রাখার পদ্ধতি। এটি মূলত বিভিন্ন অ্যালগরিদমের সমষ্টি, যে অ্যালগরিদমের মাধ্যমে কম্পিউটার মেমরিতে ডেটা গুলো সাজিয়ে রাখা যায়। কম্পিউটারে ডেটা গুলো কিভাবে গুছিয়ে রাখলে তা ব্যবহার করা সহজ হয়, তাই হচ্ছে ডেটা স্ট্রাকচারের কাজ। ভিন্ন ভিন্ন ডেটার জন্য রয়েছে ভিন্ন ভিন্ন ডেটা স্ট্র্যাকচার। এক এক … Read more

অ্যালগরিদমঃ মার্জ সর্ট ও সি প্রোগ্রামিং এ ইমপ্লিমেন্টেশন

মার্জ সর্ট হচ্ছে Divide and Conquer অ্যালগরিদম। বিভিন্ন ধরণের অ্যালগরিদমিক প্যারাডাইম রয়েছে, যেমন Greedy, Dynamic Programming ইত্যাদি। Divide and Conquer হচ্ছে একটা প্যারাডাইম। এটি একটি সমস্যাকে সমাধান করতে নিচের ধাপ গুলো অনুসরণ করেঃ   Divide: সমস্যাটাকে ছোট ছোট অংশে ভাগ করে ফেলে। Conquer: ভাগ করার পর ছোট ছোট অংশ গুলোকে সমাধান করে। সাধারণত রিকার্শন ব্যবহার … Read more

অ্যালগরিদমঃ ইনসার্শন সর্ট ও সি প্রোগ্রামিং এ ইমপ্লিমেন্টেশন

কোন একটা লিস্ট নেওয়া, এবং ঐ লিস্টকে ক্রম অনুযায়ী সাজানোটাই হচ্ছে সর্টিং। ক্রম টা বড় থেকে ছোট হতে পারে বা ছোট থেকে বড় হতে পারে। অনেক গুলো সর্টিং অ্যালগরিদম রয়েছে। Insertion Sort তাদের মধ্যে একটি। আর কোন একটা কাজ করার ধাপ গুলোই হচ্ছে অ্যালগরিদম।   Insertion Sort এর ব্যাসিক আইডিয়া হচ্ছে লিস্টটাকে দুইটা অংশে ভাগ … Read more

অ্যালগরিদম, কমপ্লেক্সিটি এনালাইসিস ও নোটেশন

অ্যালগরিদম হচ্ছে কোন একটি কাজ করার স্টেপ গুলো। প্রতিদিনই আমরা শত শত অ্যালগরিদম ব্যবহার করছি, নিজেদের অজান্তেই। বাসা থেকে স্কুলে যাবো? কোন রাস্তা দিয়ে গেলে সময় সবচেয়ে কম লাগবে, তা চিন্তা করি। এটাও একটা অ্যালগরিদম। কম্পিউটার আবিষ্কারের আগেও অ্যালগরিদম ছিল। যদিও এখন আমরা অ্যালগরিদম বলতে কম্পিউটার সাইন্স এর একটা সাবজেক্ট বুঝি। মূলত এটি গণিতের একটা … Read more

লিঙ্কড লিস্ট / Linked list সম্পর্কে ধারণা এবং সি প্রোগ্রামিং এ ইমপ্লিমেন্টেশন

ডেটা স্টোর করার জন্য অ্যারের মত আরেকটি ডেটা স্ট্যাকচার হচ্ছে Linked List। এটি স্ট্র্যাকচার অনুযায়ী ডাটা স্টোর করে, এবং রান টাইমে নতুন স্পেসের দরকার হলে অটোমেটিকেলি তা তৈরি করে নিতে পারে।  এটি হচ্ছে ডাইনামিক ডেটা স্ট্রাকচার। এটি অ্যারের মতই, তবে অ্যারেতে আমাদের কতটুকু মেমরি দরকার, প্রথমেই বলে দিতে হয়। কিন্তু লিঙ্কড লিস্টে প্রয়োজন অনুযায়ী মেমরি বাড়ানো … Read more