यहां हम देखेंगे कि लिंक्ड सूची में संग्रहीत संख्या में 1 कैसे जोड़ा जाता है। लिंक्ड सूची में, संख्या के प्रत्येक अंक को संग्रहीत किया जाता है। यदि संख्या 512 है, तो इसे नीचे दिखाए अनुसार संग्रहीत किया जाएगा -
512 = (5)-->(1)-->(2)-->NULL
हम लिंक्ड सूची को इंक्रीमेंट फ़ंक्शन में प्रदान करते हैं। यह 1 जोड़ने के बाद एक अन्य सूची लौटाता है। यहां हम C++ STL लिंक्ड सूची का उपयोग कर रहे हैं। बेहतर समझ के लिए एल्गोरिदम देखें।
एल्गोरिदम
incrementList(l1)
Begin carry := 1 res := एक खाली सूची for each node n from l1, scan from last to first, do item := (l1.item + carry) mod 10 insert item at the beginning of res carry := (l1.item + carry) / 10 done if carry is not 0, then add carry at the beginning of res end if return res End
उदाहरण
#include#include using namespace std; list
incListNum(list l1){ list ::reverse_iterator it1 = l1.rbegin(); list result; int carry = 1; //यह 1 जोड़ा जाएगा while(it1 != l1.rend()){ result.push_front((*it1 + carry) % 10); carry = (*it1 + carry) / 10; it1++; } if(carry != 0){ result.push_front(carry); } return result; } list numToList(int n){ list numList; while(n != 0){ numList.push_front(n % 10); n /= 10; } return numList; } void displayListNum(list numList){ for(list ::iterator it = numList.begin(); it != numList.end(); it++){ cout<<*it; } cout << endl; } int main() { int n1 = 9999; list n1_list = numToList(n1); list res = incListNum(n1_list); cout << "The number: "; displayListNum(n1_list); cout << "Result: "; displayListNum(res); }
आउटपुट
The number: 9999 Result: 10000