यहां, हमें एक सरणी या वर्णों की एक स्ट्रिंग दी गई है। हम एक सरणी या स्ट्रिंग के तत्वों को उलटने के लिए एक प्रोग्राम बनाएंगे।
समस्या को समझने के लिए एक उदाहरण लेते हैं,
इनपुट
array = {2, 5, 7, 1, 9}
आउटपुट
{9, 1, 7, 5, 2}
इनपुट
string = “Hello!”
आउटपुट
!0lleH
एक प्रोग्राम बनाने के लिए, हम सरणी/स्ट्रिंग के तत्वों के माध्यम से लूप करेंगे (दोनों एक ही तरह से काम करते हैं)। शुरुआत के लिए एक चर और अंत के लिए एक चर लेना। और दोनों तत्वों को स्वैप करें। प्रारंभ चर बढ़ाएँ और अंत चर घटाएँ। स्वैपिंग तब तक जारी रहेगी जब तक कि स्टार्ट वेरिएबल का मान एंड वेरिएबल से कम न हो।
कार्यक्रम दो तरह से बनाया जा सकता है, एक पुनरावृत्त है और दूसरा पुनरावर्ती है। हम ऐसा प्रोग्राम बनाएंगे जो दोनों तरीकों की कार्यप्रणाली को प्रदर्शित करेगा।
उदाहरण
विधि 1:पुनरावृत्त दृष्टिकोण
Program : #include <iostream> using namespace std; void revereseArrayIt(int arr[], int start, int end){ while (start < end){ int temp = arr[start]; arr[start] = arr[end]; arr[end] = temp; start++; end--; } } int main() { int arr[] = {6, 9, 1, 4, 0, 5}; int n = sizeof(arr) / sizeof(arr[0]); cout<<"Orignal Array : "; for (int i = 0; i < n; i++) cout<<arr[i]<<" "; cout<<endl; revereseArrayIt(arr, 0, n-1); cout << "Reversed array : "; for (int i = 0; i < n; i++) cout<<arr[i]<<" "; cout<<endl; return 0; }
आउटपुट
Orignal Array : 6 9 1 4 0 5 Reversed array : 5 0 4 1 9 6
उदाहरण
विधि 2:पुनरावर्ती दृष्टिकोण
#include <iostream> using namespace std; void revereseArrayRec(int arr[], int start, int end){ if(start >= end) return; int temp = arr[start]; arr[start] = arr[end]; arr[end] = temp; revereseArrayRec(arr,start+1, end-1); } int main() { int arr[] = {6, 9, 1, 4, 0, 5}; int n = sizeof(arr) / sizeof(arr[0]); cout<<"Orignal Array : "; for (int i = 0; i < n; i++) cout<<arr[i]<<" "; cout<<endl; revereseArrayRec(arr, 0, n-1); cout << "Reversed array : "; for (int i = 0; i < n; i++) cout<<arr[i]<<" "; cout<<endl; return 0; }
आउटपुट
Orignal Array : 6 9 1 4 0 5 Reversed array : 5 0 4 1 9 6