इस समस्या में, हमें एक लिंक्ड लिस्ट दी गई है जिसमें एक नोड में दो मान और एक पॉइंटर होता है। हमारा कार्य लिंक्ड लिस्ट में एक नोड के छोटे तत्वों का योग ज्ञात करने के लिए एक प्रोग्राम बनाना है।
यहां, लिंक्ड लिस्ट में हमारे पास दो तत्व हैं मान लें X और Y। प्रोग्राम x और y का न्यूनतम ढूंढेगा। सभी नोड्स से न्यूनतम तत्वों को जोड़ा जाता है जो आवश्यक परिणाम है।
इनपुट -
(5,2)->(7,9)->(6,3)->(36,24)->(19,26)->null
आउटपुट -
55
व्याख्या -
आइए प्रत्येक नोड से X और Y का न्यूनतम लेते हैं -
नोड1 - न्यूनतम = 5 नोड2 - न्यूनतम = 7 नोड3 - न्यूनतम = 3 नोड4 - न्यूनतम = 24 नोड5 - न्यूनतम = 19 योग = 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 << "लिंक्ड लिस्ट में नोड्स के छोटे तत्वों का योग " << findMinSum(head) << endl;
return 0;
}
आउटपुट
लिंक्ड लिस्ट में नोड्स के छोटे तत्वों का योग 55