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

লিঙ্কড লিস্ট থেকে দুটি সংখ্যা গুণ করে তৃতীয় লিস্টে ফলাফল সংরক্ষণ - সি++

দুটি লিঙ্কড লিস্টে অঙ্কগুলো থাকে। লিস্ট দুটি থেকে সংখ্যা বানিয়ে তাদের গুণফল বের করে তৃতীয় লিস্টে সংরক্ষণ করতে হবে।

উদাহরণ

ইনপুট: 1→2→NULL এবং 2→3→NULL

আউটপুট: 2→7→6→NULL (১২ × ২৩ = ২৭৬)

অ্যালগরিদম

  • দুটি লিস্ট ট্রাভার্স করে সংখ্যা দুটি বানান।
  • গুণফল বের করুন।
  • গুণফল থেকে নতুন লিস্ট তৈরি করুন।
  • ফলাফল প্রিন্ট করুন।

সি++ ইমপ্লিমেন্টেশন

#include <bits/stdc++.h>
using namespace std;

struct Node {
    int data;
    Node* next;
};

void addNewNode(Node** head, int data) {
    Node* newNode = new Node{data, *head};
    *head = newNode;
}

void multiplyTwoLinkedLists(Node* first, Node* second, Node** result) {
    long long num1 = 0, num2 = 0;
    while (first || second) {
        if (first) { num1 = num1 * 10 + first->data; first = first->next; }
        if (second) { num2 = num2 * 10 + second->data; second = second->next; }
    }
    long long product = num1 * num2;
    while (product) {
        addNewNode(result, product % 10);
        product /= 10;
    }
}

void printList(Node* node) {
    while (node) { cout << node->data << "->"; node = node->next; }
    cout << "NULL" << endl;
}

int main() {
    Node *first = nullptr, *second = nullptr;
    addNewNode(&first, 1); addNewNode(&first, 2); addNewNode(&first, 3);
    addNewNode(&second, 1); addNewNode(&second, 2);
    printList(first);
    printList(second);
    Node* result = nullptr;
    multiplyTwoLinkedLists(first, second, &result);
    printList(result);
    return 0;
}

আউটপুট

3->2->1->NULL
2->1->NULL
6->7->4->1->NULL
  1. লিংকড লিস্ট ফ্ল্যাটেন করা (C++)

  2. C++-এ দুটি লিঙ্কড লিস্টের ইন্টারসেকশন পয়েন্ট খুঁজে বের করা

  3. C++-এ সর্টেড লিংকড লিস্টকে ব্যালেন্সড বাইনারি সার্চ ট্রিতে রূপান্তর করা

  4. লিংকড লিস্ট ব্যবহার করে C++-এ দুটি পলিনোমিয়াল যোগ করা