Σε αυτό το σεμινάριο, θα μάθουμε για την αναδρομική λειτουργία στο C ++ και τη λειτουργία της με τη βοήθεια παραδειγμάτων.
Μια συνάρτηση που ονομάζεται γνωστή ως αναδρομική συνάρτηση. Και, αυτή η τεχνική είναι γνωστή ως επανάληψη.
Εργασία της αναδρομής στο C ++
void recurse() (… recurse();… ) int main() (… recurse();… )
Το παρακάτω σχήμα δείχνει πώς λειτουργεί η αναδρομή καλώντας ξανά και ξανά.
![](https://cdn.wiki-base.com/6201887/c_recursion_with_example.png.webp)
Η αναδρομή συνεχίζεται έως ότου πληρούται κάποια προϋπόθεση.
Για να αποφευχθεί η άπειρη αναδρομή, εάν… αλλιώς η δήλωση (ή παρόμοια προσέγγιση) μπορεί να χρησιμοποιηθεί όπου το ένα υποκατάστημα κάνει την αναδρομική κλήση και το άλλο όχι.
Παράδειγμα 1: Παράγοντα ενός αριθμού που χρησιμοποιεί αναδρομή
// Factorial of n = 1*2*3*… *n #include using namespace std; int factorial(int); int main() ( int n, result; cout <> n; result = factorial(n); cout << "Factorial of " << n << " = " < 1) ( return n * factorial(n - 1); ) else ( return 1; ) )
Παραγωγή
Εισαγάγετε έναν μη αρνητικό αριθμό: 4 Παράγοντα 4 = 24
Εργασία του Factorial Program
![](https://cdn.wiki-base.com/6201887/c_recursion_with_example_2.png.webp)
Όπως μπορούμε να δούμε, η factorial()
λειτουργία καλείται. Ωστόσο, κατά τη διάρκεια κάθε κλήσης, μειώσαμε την τιμή του n κατά 1
. Όταν το n είναι μικρότερο από 1
, η factorial()
συνάρτηση επιστρέφει τελικά την έξοδο.
Πλεονεκτήματα και μειονεκτήματα της επανάληψης
Ακολουθούν τα πλεονεκτήματα και τα μειονεκτήματα της χρήσης αναδρομής στο C ++.
Πλεονεκτήματα της αναδρομής C ++
- Κάνει τον κωδικό μας πιο σύντομο και καθαρότερο.
- Απαιτείται επανάληψη σε προβλήματα που αφορούν δομές δεδομένων και προηγμένους αλγόριθμους, όπως το Graph και το Tree Traversal.
Μειονεκτήματα της επανάληψης C ++
- Χρειάζεται πολύς χώρος στοίβας σε σύγκριση με ένα επαναλαμβανόμενο πρόγραμμα.
- Χρησιμοποιεί περισσότερο χρόνο επεξεργαστή.
- Μπορεί να είναι πιο δύσκολο να εντοπιστεί ο εντοπισμός σφαλμάτων σε σύγκριση με ένα ισοδύναμο επαναληπτικό πρόγραμμα.