हमें दो लिंक्ड सूचियों के साथ दिया गया है और कार्य लिंक्ड सूचियों के पूर्णांक तत्वों का उपयोग करके जोड़े बनाना है, जैसे कि उनका योग किसी दिए गए मान के बराबर है, मान लीजिए, k। लिंक की गई सूची डेटा संरचनाओं का एक क्रम है, जो लिंक के माध्यम से एक साथ जुड़े होते हैं।
इनपुट
vector v_1 = {5, 7, 8, 10, 11},. vector v_2 = {6, 4, 3, 2, 0} , int k = 11
आउटपुट
Count of pairs from two linked lists whose sum is equal to a given value k are: 4
स्पष्टीकरण
The pairs which can be formed using the given linked lists are: (5, 6) = 11(equals to k), (5, 4) = 9(not equals to k), (5, 3) = 8(not equals to k), (5, 2) = 7(not equals to k), (5, 0) = 5(not equals to k), (7, 6) = 13(not equals to k), (7, 4) = 11(equals to k), (7, 3) = 10(not equals to k), (7, 2) = 9(not equals to k), (7, 0) = 7(not equals to k), (8, 6) = 14(not equals to k), (8, 4) = 12(not equals to k), (8, 3) = 11(equals to k), (8, 2) = 10(not equals to k), (8, 0) = 8(not equals to k), (10, 6) = 16(not equals to k), (10, 4) = 14(not equals to k), (10, 3) = 13(not equals to k), (10, 2) = 12(not equals to k), (10, 0) = 10(not equals to k), (11, 6) = 17(not equals to k), (11, 4) = 15(not equals to k), (11, 3) = 14(not equals to k), (11, 2) = 13(not equals to k), (11, 0) = 11(not equals to k). So, clearly there are 3 pairs which are equal to the given sum.
इनपुट
vector v_1 = {2, 3, 5, 6},. vector v_2 = {6, 4, 3} , int k = 6
आउटपुट
Count of pairs from two linked lists whose sum is equal to a given value k are: 2
स्पष्टीकरण
The pairs which can be formed using the given linked lists are: (2, 6) = 8(not equals to k), (2, 4) = 6(equals to k), (2, 3) = 5(not equals to k), (3, 6) = 9(not equals to k), (3, 4) = 7(not equals to k), (3, 3) = 6(equals to k), (5, 6) = 11(not equals to k), (5, 4) = 9(not equals to k), (5, 3) = 8(not equals to k), (6, 6) = 12(not equals to k), (6, 4) = 10(not equals to k), (6, 3) = 9(not equals to k),. So, clearly there are 2 pairs which are equal to the given sum.
नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है
-
k और पूर्णांक प्रकार के मानों को दो वैक्टर में इनपुट करें जैसे कि हम वैक्टर को एक लिंक्ड सूची बनाने के लिए पास कर सकते हैं
-
एक फ़ंक्शन बनाएं जो फ़ंक्शन के तर्क के रूप में पारित वेक्टर का उपयोग करके एक लिंक्ड सूची बनाएगा।
-
लूप को वेक्टर के आकार तक ट्रैवर्स करें और क्लास का पॉइंटर ऑब्जेक्ट बनाएं
लिस्टनोड
-
लूप को पार करें जबकि ptr-> अगला NULL के बराबर नहीं है और ptr को ptr->next
पर सेट करें -
Ptr के अंदर->अगला सेट वेक्टर[i]
-
वापसी प्रारंभ
-
-
एक फ़ंक्शन बनाएं जो दिए गए योग से मेल खाने वाले जोड़े की संख्या लौटाएगा।
-
एक अस्थायी चर गणना लें और इसे 0 पर सेट करें
-
दो पॉइंटर ऑब्जेक्ट बनाएं यानी पहली लिंक की गई सूची के लिए *first_list और दूसरी लिंक की गई सूची के लिए *second_list।
-
सूची के खाली न होने तक पहली सूची के प्रारंभ सूचक से लूप प्रारंभ करें
-
लूप के अंदर, दूसरी सूची के प्रारंभ सूचक से सूची खाली न होने तक एक और लूप प्रारंभ करें
-
लूप के अंदर, IF (first_list->data + second_list->data) ==k चेक करें और फिर काउंट को 1 तक बढ़ा दें
-
गिनती वापस करें
-
-
परिणाम प्रिंट करें।
उदाहरण
#include<bits/stdc++.h> using namespace std; class ListNode{ public: int data; ListNode *next; ListNode(int data){ this->data = data; next = NULL; } }; ListNode *CreateList(vector v){ ListNode *start = new ListNode(v[0]); for (int i = 1; i < v.size(); i++){ ListNode *ptr = start; while (ptr->next != NULL){ ptr = ptr->next; } ptr->next = new ListNode(v[i]); } return start; } int sum_pair(ListNode *start_1, ListNode *start_2, int k){ int count = 0; ListNode *first_list , *second_list; for (first_list = start_1; first_list != NULL; first_list = first_list->next){ for (second_list = start_2; second_list != NULL; second_list = second_list->next){ if ((first_list->data + second_list->data) == k){ count++; } } } return count; } int main(){ vector<int> v_1 = {5, 7, 8, 10, 11}; ListNode* start_1 = CreateList(v_1); vector v_2 = {6, 4, 3, 2, 0}; ListNode* start_2 = CreateList(v_2); int k = 11; cout<<"Count of pairs from two linked lists whose sum is equal to a given value k are: "<<sum_pair(start_1, start_2, k); }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -
Count of pairs from two linked lists whose sum is equal to a given value k are: 4