Fill This Form To Receive Instant Help
Homework answers / question archive / Trees (25 points) Coding (16 points) Using the following leftmost-child-right-sibling tree structure: struct tree_node_struct { int payload; struct tree_node_struct *child; struct tree_node_struct *sibling; unsigned int nchildren; }; And with new nodes created by the following function: tree_node *new_tree_node(int p) { tree_node *t = malloc(sizeof(tree_node)); t->payload = p; t->child = NULL; t->sibling = NULL; t->nchildren = 0; return t; Write a function to add a child to a parent, but maintain the property that the children of any given parent are sorted by payload value in decreasing order (highest to lowest)
Trees (25 points) Coding (16 points) Using the following leftmost-child-right-sibling tree structure: struct tree_node_struct { int payload; struct tree_node_struct *child; struct tree_node_struct *sibling; unsigned int nchildren; }; And with new nodes created by the following function: tree_node *new_tree_node(int p) { tree_node *t = malloc(sizeof(tree_node)); t->payload = p; t->child = NULL; t->sibling = NULL; t->nchildren = 0; return t; Write a function to add a child to a parent, but maintain the property that the children of any given parent are sorted by payload value in decreasing order (highest to lowest). Analysis (9 points) 1. In big-O terms, how long will your function take to run? 2. How could result (1) be improved? 3. What change to the tree data structure would (2) require?