इस समस्या में, हमें एक लिंक्ड सूची दी जाती है जिसमें एक नोड होता है जिसमें दो मान और एक पॉइंटर होता है। हमारा काम एक लिंक की गई सूची में नोड के छोटे तत्वों का योग खोजने के लिए एक प्रोग्राम बनाना है।
यहां, लिंक की गई सूची में हमारे पास दो तत्व हैं X और Y। प्रोग्राम न्यूनतम x और y खोजेगा। सभी नोड्स से न्यूनतम तत्व जोड़े जाते हैं जो आवश्यक परिणाम है।
इनपुट -
(5,2)->(7,9)->(6,3)->(36,24)->(19,26)->null
आउटपुट -
55
स्पष्टीकरण -
आइए प्रत्येक नोड से न्यूनतम X और Y लें -
node1 - mini = 5 node2 - mini = 7 node3 - mini = 3 node4 - mini = 24 node5 - mini = 19 Sum = 55
इस समस्या को हल करने के लिए, हम प्रत्येक नोड पर जाकर एक स्ट्रेट फॉरवर्ड अप्रोच का उपयोग करेंगे और न्यूनतम X और Y का पता लगाएंगे। फिर इसे सम वेरिएबल में जोड़ें और फिर नोड के समाप्त होने पर योग लौटाएं।
एल्गोरिदम
आरंभ करें - योग =0
चरण1 - सूची को पार करें और निम्न कार्य करें:
चरण 1.1 − न्यूनतम शीर्ष → X और शीर्ष → Y ज्ञात करें।
चरण 1.2 - योग में न्यूनतम जोड़ें
चरण 2 - वापसी राशि,
उदाहरण
हमारे एल्गोरिथम की कार्यप्रणाली को स्पष्ट करने के लिए कार्यक्रम -
#include <iostream> using namespace std; struct Node { int X; int Y; Node* next; }; void addNode(Node** head, int x, int y){ Node* ptr = *head; Node* temp = new Node(); temp->X = x; temp->Y = y; temp->next = NULL; if (*head == NULL) *head = temp; else { while (ptr->next != NULL) ptr = ptr->next; ptr->next = temp; } } int findMinSum(Node* head){ int sum = 0; while (head != NULL) { sum += min(head->X , head->Y); head = head->next; } return sum; } int main(){ Node* head = NULL; addNode(&head, 5, 2); addNode(&head, 7, 9); addNode(&head, 6, 3); addNode(&head, 36, 24); addNode(&head, 19, 26); cout<<"The sum of smaller elements of nodes in Linked List is "<<findMinSum(head)<<endl; return 0; }
आउटपुट
The sum of smaller elements of nodes in Linked List is 55