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

ম্যাট্রিক্সকে অ্যান্টি-স্পাইরাল ফর্মে প্রিন্ট করা


একটি ২ডি অ্যারে n*n দেওয়া আছে। দায়িত্ব হলো দিয়ে गये ম্যাট্রিক্সের অ্যান্টি-স্পাইর্যাল অ্যারেঞ্জমেন্ট বের করা।

Input : arr[4][4]={1,2,3,4, 5,6,7,8, 9,10,11,12 13,14,15,16} Output: 10 11 7 6 5 9 13 14 15 16 12 8 4 3 2 1

ম্যাট্রিক্সকে অ্যান্টি-স্পাইরাল ফর্মে প্রিন্ট করা

এজন্য স্ট্যাক ব্যবহার করা যেতে পারে যেখানে ম্যাট্রিক্সের ট্রান্সপোজ স্টকে পুশ করে রিভার্সলি পপ করা হবে।

অ্যালগরিদম

START STEP 1 -> declare stack vector element as stk and variables as int r=4, c=4, i, j, rs=0 and cs=0 Step 2 -> store matrix elements in 2-3 array Step 3 -> Loop For i=0 and o<4 and i++    Loop For j=0 and j<4 and j++       Print arr[i][j]       End       Print \n    End Step 4 -> Loop While rs=rs and –i          Push arr[r-1][i]       End       r- -    End    IF(rs=cs and i- -          Push arr[i][rs]          End          Rs++       End    End Step 5 -> Loop While !stk.empty() Print stk.top() Call pop() End STOP

উদাহরণ

#include #include  using namespace std; int main(){    stack  stk;    int R=4,C=4,i,j,RS=0,CS=0;    int mat[R][C] = { {1,2,3, 4}, {5,6,7,8},{9,10,11,12},{13,14,15,16}};    for(i=0;i<4;i++){       for(j=0;j<4;j++)          cout<=RS;--i)          stk.push(mat[R-1][i]);       R--;    }    if(RS=CS;i--)          stk.push(mat[i][RS]);       RS++;    } } while(!stk.empty()){    cout<

আউটপুট

যদি উপরের প্রোগ্রামটি রান করি তবে নিচের আউটপুট জেনারেট হবে

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 10 11 7 6 5 9 13 14 15 16 12 8 4 3 2 1

  1. সি প্রোগ্রামিং-এ O(1) এক্সট্রা স্পেসে n×n স্পাইরাল ম্যাট্রিক্স প্রিন্ট করা

  2. সি প্রোগ্রামিং-এ ম্যাট্রিক্স ডায়াগোনাল প্যাটার্নে সংখ্যা প্রিন্ট করা

  3. C প্রোগ্রামে ম্যাট্রিক্সকে ডায়াগোনালি নিচের দিকে প্রিন্ট করা

  4. C++-এ একটি ম্যাট্রিক্স কাউন্টার-ক্লকওয়াইজ স্পাইরাল ফর্মে প্রিন্ট করা