দুটি সংখ্যা আলাদা লিংকড লিস্টে সংরক্ষিত। প্রতিটি ডিজিট একটি নোডে। 512 = (5)->(1)->(2)->NULL। দুটি লিস্ট যোগ করে ফলাফল বের করতে হবে। C++ STL list ব্যবহার করা হয়েছে।
অ্যালগরিদম
addListNumbers(l1, l2)
Begin Adjust lengths by adding leading 0s carry := 0 res := empty list for each node from last to first do item := (l1.item + l2.item + carry) % 10 insert at front of res carry := (l1.item + l2.item + carry) / 10 done if carry != 0 add carry at front return res End
উদাহরণ
#include<iostream> #include<list> using namespace std; list<int> addListNumbers(list<int> l1, list<int> l2){ ... } list<int> numToList(int n){ ... } void displayListNum(list<int> numList){ ... } int main() { int n1=512, n2=14578; list<int> n1_list = numToList(n1); list<int> n2_list = numToList(n2); list<int> res = addListNumbers(n1_list, n2_list); cout << "First: "; displayListNum(n1_list); cout << "Second: "; displayListNum(n2_list); cout << "Result: "; displayListNum(res); }আউটপুট
First number: 512 Second number: 14578 Result: 15090