কম্পিউটার

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


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

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

উদাহরণ

#include<iostream>
using namespace std;
class Node {
   public:
      int data;
   Node *next;
};
void prepend(Node** start, int new_data) {
   Node* new_node = new Node;
   new_node->data = new_data;
   new_node->next = NULL;
   if ((*start) != NULL){
      new_node->next = (*start);
      *start = 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->next;
      }
      ptr1 = *start2;
      ptr = ptr->next;
   }
   return count;
}
int main() {
   Node* first = NULL;
   Node* second = NULL;
   prepend(&first, 15);
   prepend(&first, 16);
   prepend(&first, 10);
   prepend(&first, 9);
   prepend(&first, 7);
   prepend(&first, 17);
   prepend(&second, 15);
   prepend(&second, 16);
   prepend(&second, 40);
   prepend(&second, 6);
   prepend(&second, 9);
   cout << "Number of common nodes:" << countCommonNodes(&first, &second);
}

আউটপুট

Number of common nodes:3

  1. C++ এ এককভাবে লিঙ্কযুক্ত তালিকায় সমস্ত প্রধান নোডের পণ্য

  2. C++ এ সার্কুলার লিঙ্কড লিস্টের নোডের সমষ্টি

  3. C++ এ লিঙ্ক করা তালিকার বিকল্প নোডের যোগফল

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