C Recursion (Αναδρομική λειτουργία)

Πίνακας περιεχομένων

Σε αυτό το σεμινάριο, θα μάθετε να γράφετε αναδρομικές συναρτήσεις στον προγραμματισμό C με τη βοήθεια ενός παραδείγματος.

Μια συνάρτηση που ονομάζεται γνωστή ως αναδρομική συνάρτηση. Και, αυτή η τεχνική είναι γνωστή ως επανάληψη.

Πώς λειτουργεί η αναδρομή;

 void recurse () (… recurse ();…) int main () (… recurse ();…)

Η αναδρομή συνεχίζεται έως ότου πληρούται κάποια προϋπόθεση για να την αποτρέψει.

Για να αποφευχθεί η άπειρη αναδρομή, εάν… αλλιώς μπορεί να χρησιμοποιηθεί δήλωση (ή παρόμοια προσέγγιση) όπου ένας κλάδος πραγματοποιεί την αναδρομική κλήση και άλλος όχι.

Παράδειγμα: Άθροισμα φυσικών αριθμών χρησιμοποιώντας αναδρομή

 #include int sum(int n); int main() ( int number, result; printf("Enter a positive integer: "); scanf("%d", &number); result = sum(number); printf("sum = %d", result); return 0; ) int sum(int n) ( if (n != 0) // sum() function calls itself return n + sum(n-1); else return n; ) 

Παραγωγή

 Εισαγάγετε έναν θετικό ακέραιο: 3 άθροισμα = 6

Αρχικά, το sum()καλείται από τη main()συνάρτηση με αριθμό που περνά ως όρισμα.

Ας υποθέσουμε ότι η τιμή του n sum()είναι αρχικά 3. Κατά την επόμενη κλήση λειτουργίας, το 2 μεταφέρεται στη sum()συνάρτηση. Αυτή η διαδικασία συνεχίζεται έως ότου το n είναι ίσο με 0.

Όταν το n είναι ίσο με 0, η ifσυνθήκη αποτυγχάνει και το elseμέρος εκτελείται επιστρέφοντας το άθροισμα των ακέραιων τελικά στη main()συνάρτηση.

Πλεονεκτήματα και μειονεκτήματα της επανάληψης

Η αναδρομή κάνει το πρόγραμμα κομψό. Ωστόσο, εάν η απόδοση είναι ζωτικής σημασίας, χρησιμοποιήστε αντί για βρόχους, καθώς η αναδρομή είναι συνήθως πολύ πιο αργή.

Τούτου λεχθέντος, η αναδρομή είναι μια σημαντική ιδέα. Χρησιμοποιείται συχνά σε δομή δεδομένων και αλγόριθμους. Για παράδειγμα, είναι συνηθισμένο να χρησιμοποιείται η αναδρομή σε προβλήματα όπως η διέλευση δέντρων.

ενδιαφέροντα άρθρα...