Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

C++ में मैट्रिक्स की पंक्ति-वार बनाम स्तंभ-वार ट्रैवर्सल

एक मैट्रिक्स को दो तरह से ट्रेस किया जा सकता है। रो-माइस ट्रैवर्सल पहली पंक्ति से शुरू होकर दूसरी और इसी तरह अंतिम पंक्ति तक एक-एक करके प्रत्येक पंक्ति का दौरा करता है। पंक्ति में तत्वों को सूचकांक 0 से अंतिम सूचकांक में लौटाया जाता है।

कॉलम-वार ट्रैवर्सल में, तत्वों को पहले कॉलम से अंतिम कॉलम तक क्रम में ट्रैवर्स किया जाता है।

2डी मैट्रिक्स में एम [i] [जे]। अनुक्रमणिका i का उपयोग पंक्तियों का प्रतिनिधित्व करने के लिए किया जाता है और अनुक्रमणिका j का उपयोग स्तंभों का प्रतिनिधित्व करने के लिए किया जाता है। पंक्ति-वार ट्रैवर्सल के लिए, से प्रारंभ करें

i=0वीं पंक्ति और 0<=j<अंतिम अनुक्रमणिका

i=1पहली पंक्ति और 0<=j<अंतिम अनुक्रमणिका

.....

i=अंतिम पंक्ति और 0<=j<अंतिम अनुक्रमणिका

कॉलम-वार ट्रैवर्सल के लिए, से शुरू करें

j=0वां स्तंभ और 0<=i<अंतिम अनुक्रमणिका

j=1पहला स्तंभ और 0<=i<अंतिम अनुक्रमणिका

.....

j=अंतिम स्तंभ और 0<=i<अंतिम अनुक्रमणिका

अनुक्रमणिका का क्रम 2D सरणी M[i][j]- i पंक्तियों के लिए और j स्तंभों के लिए समान रहता है

उदाहरण

इनपुट -

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

स्पष्टीकरण −आउटपुट स्व-व्याख्यात्मक है

C++ में मैट्रिक्स की पंक्ति-वार बनाम स्तंभ-वार ट्रैवर्सल

इनपुट -

int arr[MAX][MAX] = { {1,1,1,1,1},{2,2,2,2,2},
   {3,3,3,3,3},{4,4,4,4,4},
   {5,5,5,5,5}};

आउटपुट -

Row Major Traversal
1 1 1 1 1
2 2 2 2 2
3 3 3 3 3
4 4 4 4 4
5 5 5 5 5
Column Major Traversal
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5

स्पष्टीकरण - आउटपुट स्व-व्याख्यात्मक है।

नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है

इस दृष्टिकोण में हम पंक्ति-वार और स्तंभ-वार ट्रैवर्सल में इनपुट 2D मैट्रिक्स को प्रिंट करने के लिए लूप के लिए दो का उपयोग करते हैं।

  • 2D मैट्रिक्स का प्रतिनिधित्व करने के लिए इनपुट सरणी arr[][] लें।

  • पंक्ति तत्वों और स्तंभ तत्वों के लिए चर i और j को अनुक्रमणिका के रूप में लें।

  • पंक्ति-वार ट्रैवर्सल के लिए अनुक्रमणिका i=0 से i

  • इसके अंदर, ith पंक्ति के सभी तत्वों को ट्रैवर्स करने के लिए j=0 से j

  • प्रिंट एरर[i][j]

  • कॉलम-वार ट्रैवर्सल के लिए इंडेक्स j=0 से j

  • इसके अंदर, jth कॉलम के सभी तत्वों को ट्रैवर्स करने के लिए i=0 से i

  • प्रिंट एरर[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<MAX;i++){
      cout<<endl;
      for(j=0;j<MAX;j++){
         cout<<" "<<arr[i][j];
      }
   }
   cout<<endl<<endl;
   cout<<"Column Major Traversal "<<endl;
   for(j=0;j<MAX;j++){
      cout<<endl;
      for(j=0;j<MAX;j++){
         cout<<" "<<arr[j][i];
      }
   }
   return 0;
}

आउटपुट

यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा

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

  1. C++ . में मैट्रिक्स का ज़िगज़ैग (या विकर्ण) ट्रैवर्सल

    इस समस्या में, हमें एक 2D मैट्रिक्स दिया गया है। हमारा काम मैट्रिक के सभी तत्वों को तिरछे क्रम में प्रिंट करना है। समस्या को समझने के लिए एक उदाहरण लेते हैं, 1    2    3 4    5    6 7    8    9 आउटपुट - 1 4    2 7    

  1. C++ . में ज़िगज़ैग ट्री ट्रैवर्सल

    इस समस्या में हमें एक बाइनरी ट्री दिया जाता है। हमारा काम बाइनरी ट्री को ज़िगज़ैग रूप में प्रिंट करना है। समस्या को समझने के लिए एक उदाहरण लेते हैं, उपरोक्त बाइनरी ट्री का ज़िगज़ैग ट्रैवर्सल है 3    5    1    8    7    0    4 इस समस्या

  1. सी++ में सर्पिल मैट्रिक्स III

    मान लीजिए कि हमारे पास आर पंक्तियों और सी कॉलम के साथ एक 2 आयामी ग्रिड है, हम पूर्व की ओर (r0, c0) से शुरू करते हैं। यहां, ग्रिड का उत्तर-पश्चिम कोना पहली पंक्ति और स्तंभ पर है, और ग्रिड का दक्षिण-पूर्व कोना अंतिम पंक्ति और स्तंभ पर है। हम इस ग्रिड में हर स्थिति का दौरा करने के लिए एक दक्षिणावर्त सर