কম্পিউটার টিউটোরিয়াল

লিংকড লিস্ট হিসেবে উপস্থাপিত সংখ্যায় ১ যোগ করা


এখানে আমরা দেখব কীভাবে একটি লিংকড লিস্টে সংরক্ষিত সংখ্যার সাথে ১ যোগ করা যায়। লিংকড লিস্টে সংখ্যার প্রতিটি অঙ্ক আলাদা নোডে থাকে। যদি সংখ্যা ৫১২ হয়, তবে এটি নিচের মতো সংরক্ষিত হবে −

512 = (5)→(1)→(2)→NULL

আমরা লিস্টটিকে increment ফাংশনে দিব। এটি ১ যোগ করার পর একটি নতুন লিস্ট ফেরত দেবে। এখানে 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<iostream> #include<list> using namespace std; list<int> incListNum(list<int> l1){    list<int>::reverse_iterator it1 = l1.rbegin();    list<int> result;    int carry = 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<int> numToList(int n){    list<int> numList;    while(n != 0){       numList.push_front(n % 10);       n /= 10;    }    return numList; } void displayListNum(list<int> numList){    for(list<int>::iterator it = numList.begin(); it != numList.end();    it++){       cout<<*it;    }    cout << endl; } int main() {    int n1 = 9999;    list<int> n1_list = numToList(n1);    list<int> res = incListNum(n1_list);    cout << "The number: "; displayListNum(n1_list);    cout << "Result: "; displayListNum(res); }

আউটপুট

The number: 9999 Result: 10000

  1. জাভাস্ক্রিপ্টে লিংকড লিস্ট তৈরি করা (বেসিক)

  2. জাভাস্ক্রিপ্টে ডাবলি লিংকড লিস্টকে সার্কুলার (Circular) করা

  3. C-তে লিংকড লিস্ট ব্যবহার করে প্রায়োরিটি কিউ (Priority Queue using Linked List)

  4. এক্সেলে ফোন নম্বরের তালিকায় কান্ট্রি বা এরিয়া কোড যোগ করার পদ্ধতি