কম্পিউটার টিউটোরিয়াল

C++ প্রোগ্রাম: B-Tree ব্যবহার করে সোর্টিং

B-Tree হলো একটি সেলফ-ব্যালেন্সিং ট্রি ডেটা স্ট্রাকচার। এখানে B-Tree-তে ডেটা ইনসার্ট করে ইন-অর্ডার ট্রাভার্সাল দিয়ে সোর্টেড সিকোয়েন্স পাওয়ার উদাহরণ দেওয়া হলো। প্রতিটি নোডে সর্বোচ্চ ৫টি এলিমেন্ট রাখা হয়েছে।

মূল অপারেশন

  • traverse() - ইন-অর্ডার ট্রাভার্সাল (সোর্টেড আউটপুট)
  • sort() - নোডের ভেতরের ছোট অ্যারে বাবল সোর্ট (৫ এলিমেন্টের জন্য পর্যাপ্ত দ্রুত)
  • split_child() - নোড ফুল হলে স্প্লিট করে নতুন লেভেল বানানো
  • insert() - উপযুক্ত পজিশনে ইনসার্ট, প্রয়োজনে স্প্লিট

উদাহরণ কোড (সংক্ষিপ্ত)

struct BTreeNode {
    int* data;
    BTreeNode** child_ptr;
    bool leaf;
    int n;
};

void insert(int a) { /* B-Tree ইনসার্ট লজিক */ }
void traverse(BTreeNode* p) { /* ইন-অর্ডার ট্রাভার্সাল */ }

int main() {
    int n, val;
    cin >> n;
    for (int i = 0; i < n; i++) {
        cin >> val;
        insert(val);
    }
    traverse(root); // সোর্টেড আউটপুট
    return 0;
}

আউটপুট

enter the no of elements to be inserted: 8
enter the element: 54 23 98 52 10 23 47 84
traversal of constructed tree
10 23 23 47 52 54 84 98

দ্রষ্টব্য: বাস্তবে B-Tree ডিস্ক-ভিত্তিক স্টোরেজের জন্য ডিজাইন করা। ইন-মেমরি সোর্টিং-এ std::sort বা quicksort/mergesort বেশি কার্যকর।

  1. সি++ প্রোগ্রাম দিয়ে অন্য প্রোগ্রাম লঞ্চ করা

  2. C++ ব্যবহার করে এলিপসের এরিয়া বের করা

  3. ম্যাট্রিক্স মাল্টিপ্লিকেশন (Matrix Multiplication) করার C++ প্রোগ্রাম

  4. রিকার্সন ব্যবহার করে GCD (Greatest Common Divisor) বের করার C++ প্রোগ্রাম