node

A class to store information about each recursive function call

Each node represents a single recursive function call. Together, a graph of these nodes show which functions recursively call which other functions. This can be very helpful in developing an intutive understanding of each recursive call.

Other functions will thus build upon the Node class to create the animated graph of recursive function calls.


source

Node

 Node (id_:int=None, input:tuple=None, output:<built-infunctionany>=None,
       depth:int=None, discovered:int=None, finish:int=None)

A node

Type Default Details
id_ int None a unique id for the node
input tuple None the input to the function represented by the node
output any None the output of the function represented by the node
depth int None the depth of the node in the graph (starting at 0)
discovered int None the time the node was first discovered in the graph traversal
finish int None the time the node (and its descendants) were finished being explored in the graph traversal

This class records standard information about nodes in a graph: id, depth, discovered, and finish. However, in recursion-visualizer, each node represents a call to a recursive function so we store additional values: input and output which represent the input and output to the recursive function.

Time

The discovered time and finish time do not refer to the runtime or literal time of day. Instead this time is a way to record helpful information about the graph traversal. This time begins at zero and is incremented by one when a node is first discovered or when it (and its descandents) are completly finished being explored. In the context of storing recursive calls, discovered is when the recursive call is first made and its execution begins. finished is when the recursive call (and its subsequent functions calls) have all finished executing.