কম্পিউটার

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


এই সমস্যায়, আমরা একটি লিঙ্ক তালিকা দেওয়া হয়. আমাদের কাজ হল একটি লিঙ্ক করা তালিকায় জোড় এবং বিজোড় নোডের যোগফল খুঁজে বের করা .

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

Input : linked list : 3 -> 2 -> 5 -> 7 -> 1 -> 9
Output : evenSum = 2 ; oddSum = 25

ব্যাখ্যা

evenSum = 2
oddSum = 3 + 5 + 7 + 1 + 9 = 25

সমাধান পদ্ধতি

সমস্যা সমাধানের একটি সহজ পন্থা হল লিঙ্ক করা তালিকাকে অতিক্রম করা এবং জোড় বা বিজোড় মান পরীক্ষা করা এবং তাদের নিজ নিজ যোগফলের সাথে যোগ করা।

অ্যালগরিদম

  • ধাপ 1 - লিঙ্ক করা তালিকা অতিক্রম করুন।

    • পদক্ষেপ 1.1৷ − যদি বর্তমান নোডের মান জোড় হয়, তাহলে এটাকে ইভেনসুমে যোগ করুন।

    • পদক্ষেপ 1.2৷ − যদি বর্তমান নোডের মান বিজোড় হয়, তাহলে এটিকে oddSum-এ যোগ করুন।

  • ধাপ 2 − oddSum এবং evenSum ফেরত দিন।

উদাহরণ

আমাদের সমাধানের কাজ চিত্রিত করার জন্য প্রোগ্রাম

#include <iostream>
using namespace std;
struct Node {
   int data;
   Node* next;
};
void insertNode(Node** root, int item) {
   Node *ptr = *root, *temp = new Node;
   temp->data = item;
   temp->next = NULL;
   if (*root == NULL) 
      *root = temp;
   else {
      while (ptr->next != NULL)
         ptr = ptr->next;
      ptr->next = temp;
   }
}
bool isEven(int a){
   return (a % 2);
}
void findEvenAndOddSum(Node* root) {
   int oddSum = 0, evenSum = 0;
   Node* node = root;
   while (node != NULL) {
      if (isEven(node->data))
         evenSum += node->data;
      else 
         oddSum += node->data;
      node = node->next;
   }
   cout<<"Sum of nodes with even value is "<<evenSum<<endl;
   cout<<"Sum of nodes with odd value is "<<oddSum;
}
int main() {
   Node* root = NULL;
   insertNode(&root, 3);
   insertNode(&root, 2);
   insertNode(&root, 5);
   insertNode(&root, 7);
   insertNode(&root, 1);
   insertNode(&root, 9);
   insertNode(&root, 6);
   findEvenAndOddSum(root);
   return 0;
}

আউটপুট

Sum of nodes with even value is 25
Sum of nodes with odd value is 8

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

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

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

  4. C++ এ বাইনারি ট্রিতে লিঙ্ক করা তালিকা