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

লিঙ্কড লিস্টে ফ্র্যাকশনাল (n/k-তম) নোড খুঁজে বের করা (C++)

একটি সিঙ্গলি লিঙ্কড লিস্ট এবং একটি সংখ্যা k দেওয়া আছে। লিস্টের দৈর্ঘ্য n হলে (n/k)-তম নোড বের করতে হবে (সিলিং ভ্যালু নেওয়া হয়)। উদাহরণ: লিস্ট 1,2,3,4,5,6 এবং k=2 হলে n/k = 3, তাই ৩রা নোড (মান ৩) আউটপুট।

দুটি পয়েন্টার (temp, fracPoint) ব্যবহার করুন। temp প্রতি k-স্টেপে fracPoint এক_STEP সরান।

উদাহরণ

#include <iostream>
using namespace std;

class Node {
public:
    int data;
    Node* next;
};

Node* getNode(int data) {
    Node* n = new Node;
    n->data = data; n->next = NULL;
    return n;
}

Node* fractionalNodes(Node* start, int k) {
    if (k <= 0 || !start) return NULL;
    Node* fracPoint = NULL;
    int i = 0;
    for (Node* temp = start; temp; temp = temp->next) {
        if (i % k == 0) {
            if (!fracPoint) fracPoint = start;
            else fracPoint = fracPoint->next;
        }
        i++;
    }
    return fracPoint;
}

int main() {
    Node* start = getNode(1);
    start->next = getNode(2);
    start->next->next = getNode(3);
    start->next->next->next = getNode(4);
    start->next->next->next->next = getNode(5);
    int k = 2;
    Node* ans = fractionalNodes(start, k);
    cout << "Fractional node is " << ans->data;
    return 0;
}

আউটপুট

Fractional node is 3
  1. মাল্টিলেভেল লিংকড লিস্ট ফ্ল্যাটেন করা (C++)

  2. বাইনারি ট্রিয়ে সবচেয়ে গভীর নোড বের করা (C++)

  3. C++-এ বাইনারি ট্রির গভীরতম নোড খুঁজুন

  4. C++-এ একটি লিংকড লিস্ট সার্কুলার লিংকড লিস্ট কিনা চেক করা