কম্পিউটার

C++ এ দুটি দ্বিগুণ লিঙ্কযুক্ত তালিকায় সাধারণ নোডের গণনা খুঁজুন


ধরুন আমাদের কাছে দুটি দ্বিগুণ-লিঙ্কযুক্ত তালিকা রয়েছে৷ আমাদের দ্বৈতভাবে লিঙ্কযুক্ত উভয় তালিকায় সাধারণ নোডের মোট সংখ্যা খুঁজে বের করতে হবে। তাই যদি দুটি তালিকা হয় [15, 16, 10, 9, 7, 17], এবং [15, 16, 40, 6, 9], তাহলে তিনটি সাধারণ নোড আছে৷

দুটি নেস্টেড লুপ ব্যবহার করে তালিকার শেষ পর্যন্ত উভয় তালিকা অতিক্রম করুন, তালিকার প্রতিটি নোডের জন্য, এটি দ্বিতীয় তালিকার কোনো নোডের সাথে মিলছে কিনা তা পরীক্ষা করুন। যদি একটি মিল পাওয়া যায়, তাহলে কাউন্টার বাড়ান, এবং অবশেষে গণনা ফেরত দিন।

উদাহরণ

#include<iostream>
using namespace std;
class Node {
   public:
      int data;
   Node *back, *front;
};
void append(Node** start, int new_data) {
   Node* new_node = new Node;
   new_node->data = new_data;
   new_node->back = NULL;
   new_node->front = (*start);
   if ((*start) != NULL)
      (*start)->back = new_node;
   (*start) = new_node;
}
int countCommonNodes(Node** start1, Node** start2) {
   Node* ptr = *start1;
   Node* ptr1 = *start2;
   int count = 0;
   while (ptr != NULL) {
      while (ptr1 != NULL) {
         if (ptr->data == ptr1->data) {
            count++;
            break;
         }
         ptr1 = ptr1->front;
      }
      ptr1 = *start2;
      ptr = ptr->front;
   }
   return count;
}
int main() {
   Node* first = NULL;
   Node* second = NULL;
   append(&first, 15);
   append(&first, 16);
   append(&first, 10);
   append(&first, 9);
   append(&first, 7);
   append(&first, 17);
   append(&second, 15);
   append(&second, 16);
   append(&second, 40);
   append(&second, 6);
   append(&second, 9);
   cout << "Number of common nodes:" << countCommonNodes(&first, &second);
}

আউটপুট

Number of common nodes:3

  1. C++ এ দ্বৈতভাবে সংযুক্ত সার্কুলার তালিকা

  2. C++ এ দ্বিগুণ লিঙ্কযুক্ত তালিকার আকার খোঁজার প্রোগ্রাম

  3. C++ এ সার্কুলার লিঙ্ক তালিকায় নোড গণনা করুন

  4. C++ এ একটি বাইনারি ট্রির দুটি নোডের মধ্যে দূরত্ব খুঁজুন