RE:Recursividad
Publicado por
LUIS (1 intervención) el 19/08/2004 14:47:26
Una función recursiva es una función que se llama a sí misma en el caso de que se cumpla una condición.
La mejor forma de comrender la recursividad es imaginarse un árbol con sus ramas y hojas. Dibujate un árbol y sigue los pasos de la función recursiva.
En el ejemplo que está más abajo si llamas a la funcion CallRecursive y la pasas un árbol llamará a la funcion recursiva PrintRecursive pasándole como parámetro un nodo (una rama). Si este nodo tiene otros nodos (ramas u hojas) se llamará a sí mismá pasádole como parámetro el primer nodo que contenga hasta llegar a un nodo sin hojas (esta es la condicion que debe cumplir la recursividad), terminando la llamada a la función. Al terminar esta llamada vuelve a la linea siguiente a la llamada anterior y busca si este nodo tiene nodos hermanos y llama de nuevo a la función recursiva así hasta que recorre todos los nodos.
Private Sub PrintRecursive(ByVal n As TreeNode)
System.Diagnostics.Debug.WriteLine(n.Text)
MessageBox.Show(n.Text)
Dim aNode As TreeNode
For Each aNode In n.Nodes
PrintRecursive(aNode)
Next
End Sub
' Call the procedure using the top nodes of the treeview.
Private Sub CallRecursive(ByVal aTreeView As TreeView)
Dim n As TreeNode
For Each n In aTreeView.Nodes
PrintRecursive(n)
Next
End Sub
Espero que consigas entenderlo.