Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [C]delucidazione funzione ricorsiva

    salve a tutti...come da titolo chiedevo se era possibile avere una piccola delucidazione da voi utenti esperti sulle funzioni ricorsive...in pratica il meccanismo di attuazione l'ho assimilato abbastanza bene...ma mi chiedevo più che altro in che ambito debbano essere usate e come...grazie a tutti

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326

    Re: [C]delucidazione funzione ricorsiva

    Originariamente inviato da Sandro_88
    voi utenti esperti
    Io non rientro certamente in questa categoria quindi ti consiglio di aspettare eventuali risposte (e/o rettifiche) da chi, invece, ne fa parte.

    In ogni caso, per quello che so non esiste una regola precisa che stabilisca quando usare la ricorsione e quando il metodo iterativo. In generale quello che si può fare usando una delle due tecniche di programmazione può essere realizzato (in maniera più o meno facile/efficiente) con l'altra.

    Di solito la tecnica ricorsiva grava maggiormente sulle prestazioni di un programma, questo perché si tratta di realizzare un certo numero di chiamate a funzioni fin quando non si raggiunge un caso base. Il metodo iterativo fornisce generalmente prestazioni migliori, ma molto spesso risulta più complesso implementare, con questa tecnica, algoritmi che, per la natura del problema che risolvono, verrebbero descritti in maniera molto più concisa, chiara ed elegante ricorsivamente; è il caso, ad esempio, delle visite inorder, preorder e postorder degli alberi binari: possono essere realizzati sia con l'una che con l'altra tecnica ma risultano più difficili da implementare iterativamente, poiché bisogna gestire uno stack esplicitamente (mentre la programmazione ricorsiva lo fa implicitamente).

    Insomma sul piatto della bilancia bisogna mettere da un lato le esigenze relative alle prestazioni e dall'altro la chiarezza, l'eleganza e la concisione dell'algoritmo che bisogna realizzare. Regole universali non esistono.

    (comunque direi che la questione riguarda la programmazione in generale e non solo il linguaggio C, come indicato nell'oggetto del topic).

  3. #3
    C'è una vecchia discussione piuttosto interessante in merito.
    Amaro C++, il gusto pieno dell'undefined behavior.

  4. #4
    ok grazie mille per le risposte ricevute...da quanto leggo anche su internet rimane un fatto di semplicità d'uso e praticità...questione di gusti insomma...il dubbio sull'utilità dei due sistemi di ricorsione e iterazione se lo pone anche il mio stesso libro nel quale sto studiando...alla prossima ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.