Exams › GATE › Technical
Consider the C function foo and the binary tree shown.
typedef struct node {
int val;
struct node *left, *right;
} node;
int foo(node *p) {
int retval;
if (p == NULL)
return 0;
else {
retval = p->val + foo(p->left) + foo(p->right);
printf("%d ", retval);
return retval;
}
}
When foo is called with a pointer to the root node of the given binary tree, what will it print?
- 3 8 5 13 11 10
- 3 5 8 10 11 13
- 3 8 16 13 24 50
- 3 16 8 50 24 13
Correct answer: 3 8 5 13 11 10
Solution
The function recursively calculates the sum of values in the binary tree, printing the cumulative sum at each node after processing its left and right children. This results in the output reflecting the order of node processing and their respective sums.
Related GATE Technical questions
- Which one of the following sequences when stored in an array at locations A[1],..., A[10] forms a max-heap?
- Let SLLdel be a function that deletes a node in a singly-linked list given a pointer to the node and a pointer to the head of the list. Similarly, let DLLdel be another function that deletes a node in a doubly-linked list given a pointer to the node and a pointer to the head of the list. Let n denote the number of nodes in each of the linked lists. Which one of the following choices is TRUE about the worst-case time complexity of SLLdel and DLLdel?
- Consider the Deterministic Finite-state Automaton (DFA) A shown below. The DFA runs on the alphabet {0,1}, and has the set of states {s,p,q,r}, with s being the start state and p being the only final state.
Which one of the following regular expressions correctly describes the language accepted by A?
- Which one of the options given below refers to the degree (or arity) of a relation in relational database systems?
- Suppose two hosts are connected by a point-to-point link and they are configured to use Stop-and-Wait protocol for reliable data transfer. Identify in which one of the following scenarios, the utilization of the link is the lowest.
- An algorithm has to store several keys generated by an adversary in a hash table. The adversary is malicious who tries to maximize the number of collisions. Let k be the number of keys, m be the number of slots in the hash table, and k > m.
Which one of the following is the best hashing strategy to counteract the adversary?
⚔️ Practice GATE Technical free + battle 1v1 →