কম্পিউটার

সি প্রোগ্রামে একটি একক লিঙ্কযুক্ত তালিকার নোডের সমষ্টি


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

উদাহরণস্বরূপ

Suppose we have a linked list: 2 -> 27 -> 32 -> 1 -> 5
sum = 2 + 27 + 32 + 1 + 5 = 67.

এটি দুটি পদ্ধতি ব্যবহার করে করা যেতে পারে:

পদ্ধতি 1 - একটি লুপ ব্যবহার করে যা লিঙ্ক করা তালিকার সমস্ত মান লুপ করে এবং যোগফল খুঁজে পায়৷

লুপটি লিঙ্ক করা তালিকার শেষ পর্যন্ত চলে যেমন যখন একটি উপাদানের পয়েন্টারটি শূন্য নির্দেশ করে, তখন এই লুপটি চলবে এবং প্রতিটি উপাদানের মানের সমষ্টি খুঁজে বের করবে।

উদাহরণ

#include <iostream>
using namespace std;
struct Node {
   int data;
   struct Node* next;
};
void push(struct Node** nodeH, int nodeval) {
   struct Node* new_node = new Node;
   new_node->data = nodeval;
   new_node->next = (*nodeH);
   (*nodeH) = new_node;
}
int main() {
   struct Node* head = NULL;
   int sum = 0;
   push(&head, 95);
   push(&head, 60);
   push(&head, 87);
   push(&head, 6);
   push(&head, 12);
   struct Node* ptr = head;
   while (ptr != NULL) {
      sum += ptr->data;
      ptr = ptr->next;
   }
   cout << "Sum of nodes = "<< sum;
   return 0;
}

আউটপুট

Sum of nodes = 260

পদ্ধতি 2 - একটি পুনরাবৃত্ত ফাংশন ব্যবহার করা যা লিঙ্কযুক্ত তালিকায় উপাদান না থাকা পর্যন্ত নিজেকে কল করে। পুনরাবৃত্ত ফাংশন নিজেকে আবার এবং আবার কল. পুনরাবৃত্ত ফাংশনে কলটি পরের নোডের মানগুলিকে প্যারামিটার হিসাবে যোগফল ঠিকানা অবস্থানের সাথে পাঠায়৷

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
struct Node {
   int data;
   struct Node* next;
};
void push(struct Node** head_ref, int new_data) {
   struct Node* new_node = new Node;
   new_node->data = new_data;
   new_node->next = (*head_ref);
   (*head_ref) = new_node;
}
void nodesum(struct Node* head, int* sum) {
   if (!head)
      return;
   nodesum(head->next, sum);
   *sum = *sum + head->data;
}
int main() {
   struct Node* head = NULL;
   int sum= 0;
   push(&head, 95);
   push(&head, 60);
   push(&head, 87);
   push(&head, 6);
   push(&head, 12);
   nodesum(head,&sum);
   cout << "Sum of nodes = "<<sum;
   return 0;
}

আউটপুট

Sum of nodes = 260

  1. লিঙ্ক করা তালিকার বিকল্প নোডের পণ্য

  2. C++ এ গভীরতম নোডের যোগফল খুঁজে বের করার জন্য প্রোগ্রাম

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

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