কম্পিউটার

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


এই সমস্যায়, আমাদের একটি লিঙ্ক করা তালিকা দেওয়া হয়েছে। আমাদের কাজ হল লিঙ্ক করা তালিকার বিকল্প নোডের যোগফল প্রিন্ট করা।

লিঙ্ক করা তালিকা হল ডেটা স্ট্রাকচারের একটি ক্রম যা লিঙ্কের মাধ্যমে একসাথে সংযুক্ত থাকে৷

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

এখন, সমস্যায় ফিরে আসা যাক। এখানে, আমরা লিঙ্ক করা তালিকার বিকল্প নোড যোগ করব। এর মানে আমরা নোড যোগ করব পজিশন 0, 2, 4, 6, …

সমস্যাটি বোঝার জন্য একটি উদাহরণ নেওয়া যাক,

ইনপুট

4 → 12 → 10 → 76 → 9 → 26 → 1

আউটপুট

24

ব্যাখ্যা

considering alternate strings −
4 + 10 + 9 + 1 = 24

এই সমস্যা সমাধানের জন্য, আমরা একে একে প্রতিটি নোড পরিদর্শন করব এবং প্রতিটি নেস্ট নোডের জন্য। আমরা যোগফলের সাথে মান যোগ করব। নোডের উপর একটি চেক রাখতে, আমরা একটি পতাকা ব্যবহার করব৷

এটি পুনরাবৃত্তি বা পুনরাবৃত্তি ব্যবহার করে করা যেতে পারে। আমরা এখানে উভয় আলোচনা করব,

উদাহরণ

পুনরাবৃত্ত পদ্ধতি

#include <iostream>
using namespace std;
struct Node {
   int data;
   struct Node* next;
};
void pushNode(struct Node** head_ref, int newData) {
   struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));
   newNode->data = newData;
   newNode->next = (*head_ref);
   (*head_ref) = newNode;
}
int sumAlternateNodeIt(struct Node* head) {
   bool flag = true;
   int sum = 0;
   while (head != NULL){
      if (flag)
         sum += head->data;
      flag = !flag;
      head = head->next;
   }
   return sum;
}
int main(){
   struct Node* head = NULL;
   pushNode(&head, 54);
   pushNode(&head, 12);
   pushNode(&head, 87);
   pushNode(&head, 1);
   pushNode(&head, 99);
   pushNode(&head, 11);
   cout<<"The sum of alternate nodes is "<<sumAlternateNodeIt(head);
   return 0;
}

আউটপুট

The sum of alternate nodes is 24

উদাহরণ

পুনরাবৃত্ত পদ্ধতি

#include <iostream>
using namespace std;
struct Node {
   int data;
   struct Node* next;
};
void pushNode(struct Node** head_ref, int new_data){
   struct Node* new_node = (struct Node*)malloc(sizeof(struct Node));
   new_node->data = new_data;
   new_node->next = (*head_ref);
   (*head_ref) = new_node;
}
void sumAlternateNodeRec(struct Node* node, int& sum, bool flag = true){
   if (node == NULL)
      return;
   if (flag == true)
   sum += (node->data);
   sumAlternateNodeRec(node->next, sum, !flag);
}
int main(){
   struct Node* head = NULL;
   pushNode(&head, 54);
   pushNode(&head, 12);
   pushNode(&head, 87);
   pushNode(&head, 1);
   pushNode(&head, 99);
   pushNode(&head, 11);
   int sum = 0;
   sumAlternateNodeRec(head, sum, true);
   cout<<"The sum of alternate nodes is "<<sum;
   return 0;
}

আউটপুট

The sum of alternate nodes is 24

  1. লিংকড লিস্টের বিকল্প নোড (পুনরাবৃত্ত পদ্ধতি) সি ভাষায় প্রিন্ট করুন

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

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

  4. C++ এ পুনরাবৃত্তি ব্যবহার করে লিঙ্ক করা তালিকার বিকল্প নোড প্রিন্ট করুন