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

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


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

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

2D मैट्रिक्स M[i][j] में। इंडेक्स 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 मैट्रिक्स को पंक्ति-वार और स्तंभ-वार ट्रैवर्सल में प्रिंट करने के लिए दो for लूप का उपयोग करते हैं।

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

  • पंक्ति तत्वों और स्तंभ तत्वों के लिए इंडेक्स के रूप में वेरिएबल i और j लें।

  • पंक्ति-वार ट्रैवर्सल के लिए इंडेक्स i=0 से i

  • इसके अंदर, इंडेक्स j=0 से j

  • arr[i][j] प्रिंट करें

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

  • इसके अंदर, इंडेक्स i=0 से i

  • 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<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++ में मैट्रिक्स का जिगजैग (या विकर्ण) ट्रैवर्सल C++ में मैट्रिक्स का जिगजैग (या विकर्ण) ट्रैवर्सल

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

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

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

  1. C++ में स्पाइरल मैट्रिक्स III (Spiral Matrix III) C++ में स्पाइरल मैट्रिक्स III (Spiral Matrix III)

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