কম্পিউটার

সি প্রোগ্রামে রিকার্সিভ ফাংশন সহ সহায়ক স্থান?


এখানে আমরা দেখব কিভাবে রিকার্সিভ ফাংশন কলের জন্য সহায়ক স্থান প্রয়োজন। এবং সাধারণ ফাংশন কল থেকে এটি কীভাবে আলাদা?

ধরুন আমাদের নিচের মত একটি ফাংশন আছে −

long fact(int n){
   if(n == 0 || n == 1)
      return 1;
   return n * fact(n-1);
}
ফেরত দিন

এই ফাংশনটি পুনরাবৃত্ত ফাংশন। যখন আমরা এটিকে ফ্যাক্ট(5) এর মতো বলি, তখন এটি স্ট্যাকের ভিতরে ঠিকানাগুলিকে নীচের মত সংরক্ষণ করবে −

fact(5) --->
fact(4) --->
fact(3) --->
fact(2) --->
fact(1)

পুনরাবৃত্ত ফাংশন বারবার নিজেকে কল করা হয়, ঠিকানা স্ট্যাক যোগ করা হয়. সুতরাং যদি ফাংশনটিকে n বার বারবার বলা হয়, এটি O(n) সহায়ক স্থান নেবে। কিন্তু এর মানে এই নয় যে যদি একটি স্বাভাবিক ফাংশনকে n বার বলা হয়, তাহলে স্থানের জটিলতা হবে O(n)। সাধারণ ফাংশনের জন্য যখন এটি কল করা হয়, ঠিকানাটি স্ট্যাকের মধ্যে পুশ করা হয়। এর পরে এটি সম্পূর্ণ হলে, এটি স্ট্যাক থেকে ঠিকানা পপ করবে এবং ইনভোকার ফাংশনে আসবে। তারপর আবার কল করুন। সুতরাং এটি O(1) হবে।


  1. রিকার্সিভ ফাংশন ব্যবহার করে x পাওয়ার n এর মান তৈরি করতে সি প্রোগ্রাম

  2. পুনরাবৃত্ত ফাংশন ব্যবহার করে সংখ্যার GCD খুঁজে বের করতে C প্রোগ্রাম

  3. 6টি ব্যবহারিক উদাহরণ সহ ব্যাশ শেল ফাংশন টিউটোরিয়াল

  4. এক্সেলে ডেটাবেস ফাংশনগুলি কীভাবে ব্যবহার করবেন (উদাহরণ সহ)