Question: / / Initializes an iterator to the beginning of a tree ( i . e . , first in - order node ) void tree

// Initializes an iterator to the beginning of a tree (i.e., first in-order node)
void tree_iterator_begin(tree_iterator_t* iter, tree_node_t* root)
{
// IMPLEMENT THIS
}
// Updates an iterator to move to the next in-order node in the tree if possible
// Moving past the last in-order node in the tree results in the iterator reaching a NULL state representing the end of the tree
void tree_iterator_next(tree_iterator_t* iter)
{
// IMPLEMENT THIS
} Given structs: typedef struct tree_node {
shape_t* shape; // Shape associated with the node
struct tree_node* left; // Left subtree
struct tree_node* right; // Right subtree
} tree_node_t;
#define MAX_DEPTH 30
typedef struct {
tree_node_t* curr; // Pointer to the current node
unsigned int depth; // Current depth in the tree (root is at depth 0)
tree_node_t* parents[MAX_DEPTH]; // Pointer to parent nodes
} tree_iterator_t; // Helper struct for iterating through a tree -- represents a current location within the tree

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!