একটি ম্যাট্রিক্সকে দুটি ভাবে ট্রাভার্স করা যায়: রো-মেজর (রো অনুযায়ী) এবং কলাম-মেজর (কলাম অনুযায়ী)।
২D ম্যাট্রিক্স M[i][j]-এ i রো ও j কলাম নির্দেশ করে।
রো-মেজর ট্রাভার্সাল
i=0রো থেকে শুরু করে0 <= j < lasti=1রো থেকে শুরু করে0 <= j < last...
i=lastরো থেকে শুরু করে0 <= j < last
কলাম-মেজর ট্রাভার্সাল
j=0কলাম থেকে শুরু করে0 <= i < lastj=1কলাম থেকে শুরু করে0 <= i < last...
j=lastকলাম থেকে শুরু করে0 <= i < last
উদাহরণ
ইনপুট −
int arr[MAX][MAX] = { {1,2,3,4,5},{6,7,8,9,0},{5,4,3,2,1},{0,0,0,0,0},{8,9,7,6,1}};
আউটপুট −
Row Major Traversal 1 2 3 4 5 6 7 8 9 0 5 4 3 2 1 0 0 0 0 0 8 9 7 6 1 Column Major Traversal 1 6 5 0 8 2 7 4 0 9 3 8 3 0 7 4 9 2 0 6 5 0 1 0 1
প্রোগ্রামে ব্যবহৃত পদ্ধতি
দুটি নেস্টেড ফর লুপ দিয়ে রো-ওয়াইজ ও কলাম-ওয়াইজ প্রিন্ট করা হয়।
ইনপুট অ্যারে
arr[][]নিন।iরো ইনডেক্স,jকলাম ইনডেক্স।রো-ওয়াইজ: বাহ্যিক লুপ
i=0থেকেMAX, আভ্যন্তর লুপj=0থেকেMAX, প্রিন্টarr[i][j]।কলাম-ওয়াইজ: বাহ্যিক লুপ
j=0থেকেMAX, আভ্যন্তর লুপi=0থেকেMAX, প্রিন্টarr[i][j]।
উদাহরণ কোড
#include <bits/stdc++.h>
using namespace std;
#define MAX 5
int main(){
int arr[MAX][MAX] = { {1,2,3,4,5},{6,7,8,9,0},{5,4,3,2,1},{0,0,0,0,0},{8,9,7,6,1}};
int i, j;
cout << "Row Major Traversal " << endl;
for(i=0; i
আউটপুট
উপরের কোড রান করলে নিচের আউটপুট পাওয়া যাবে:
Row Major Traversal 1 2 3 4 5 6 7 8 9 0 5 4 3 2 1 0 0 0 0 0 8 9 7 6 1 Column Major Traversal 6 5 0 8 3 2 7 6 4