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

সি প্রোগ্রামিং-এ স্ট্যাকের বৃদ্ধির দিক নির্ণয় করা


স্ট্যাক হলো একটি ডেটা স্ট্রাকচার যা এলিমেন্ট সংরক্ষণ করে। স্ট্যাকের দুটি অপারেশন রয়েছে: push (নতুন এলিমেন্ট যোগ করা) এবং pop (এলিমেন্ট মুছে ফেলা)।

প্রোগ্রামের প্রকৃতির ওপর নির্ভর করে স্ট্যাক উপরের দিকে (upward) বা নিচের দিকে (downward) বড়তে পারে। নিচে স্ট্যাকের বৃদ্ধির দিক নির্ণয় করার প্রোগ্রাম দেওয়া হলো।

অ্যালগরিদম

Step 1: main ফাংশনে একটি লোকাল ভেরিয়েবল তৈরি করুন।
Step 2: একটি লোকাল ভেরিয়েবল সহ একটি ফাংশন তৈরি করুন।
Step 3: main ফাংশন থেকে ফাংশনটি কল করুন। তারপর উভয় ফাংশনের লোকাল ভেরিয়েবল তুলনা করুন।
Step 4: main এবং ফাংশনের লোকাল ভেরিয়েবলের ঠিকানা তুলনা করুন।
Step 5: যদি main-এ ভেরিয়েবলের ঠিকানা ফাংশনের ভেরিয়েবলের ঠিকানার চেয়ে বেশি হয়, তবে স্ট্যাক উপরের দিকে (upward) বড়ছে, অন্যথায় নিচের দিকে (downward) বড়ছে।

সি প্রোগ্রাম

#include <stdio.h>

void fun(int *main_local_addr) {
    int fun_local;
    if (main_local_addr < &fun_local)
        printf("Stack grows upward\n");
    else
        printf("Stack grows downward\n");
}

int main() {
    int main_local;
    fun(&main_local);
    return 0;
}

আউটপুট

Stack grows downward

  1. নন-রিকার্সিভ ফাংশন ব্যবহার করে GCD বের করার সি প্রোগ্রাম

  2. রিকার্সিভ ফাংশন ব্যবহার করে GCD বের করার সি প্রোগ্রাম

  3. পাইথনে BST-এ নির্দিষ্ট রেঞ্জে থাকা নোডের সংখ্যা খুঁজে বের করার প্রোগ্রাম

  4. একটি ফাংশনে লোকাল ভেরিয়েবলের সংখ্যা বের করার পাইথন প্রোগ্রাম