Consider the following algorithm someAlgo that takes an undirected graph \( G \) as input.
someAlgo(G) Let \( v \) be any vertex in \( G \).
1. Run BFS on \( G \) starting at \( v \). Let \( u \) be a vertex in \( G \) at maximum distance from \( v \) as given by the BFS.
2. Run BFS on \( G \) again with \( u \) as the starting vertex. Let \( z \) be the vertex at maximum distance from \( u \) as given by the BFS. 3. Output the distance between \( u \) and \( z \) in \( G \).
The output of tt{someAlgo(T)} for the tree shown in the given figure is ____________ . (Answer in integer)

The algorithm tt{someAlgo} effectively finds the diameter of the tree \( T \), which is the longest shortest path between any two nodes in the tree. Step 1: Run BFS from any arbitrary node \( v \) - Select an arbitrary node and perform a BFS to find the farthest node \( u \).
Step 2: Run BFS from \( u \) to find the farthest node \( z \) - Perform another BFS starting from \( u \) to determine the farthest node \( z \).
Step 3: Compute the distance between \( u \) and \( z \) - The distance obtained in this second BFS represents the tree's diameter. From the given tree diagram, the longest shortest path (diameter) is found to be \( 6 \).
Consider the following code:
main() {
int x = 126, y = 105;
{
if (x > y)
x = x - y;
else
y = y - x;
}
while (x != y)
printf("%d", x);
}
Consider the following code:
int a;
int arr[] = {30, 50, 10};
int *ptr = arr[10] + 1;
a = *ptr;
(*ptr)++;
ptr = ptr + 1;
printf("%d", a + arr[1] + *ptr);
Consider the following code:
int a;
int arr[] = {30, 50, 10};
int *ptr = arr[10] + 1;
a = *ptr;
(*ptr)++;
ptr = ptr + 1;
printf("%d", a + arr[1] + *ptr);
Consider the following hierarchical cache system with the following access times:
\[ \begin{array}{|c|c|c|} \hline \textbf{Cache Level} & \textbf{Hit Rate} & \textbf{Access Time} \\ \hline L1 & 90\% & 1 \text{ ns} \\ L2 & 80\% & 10 \text{ ns} \\ L3 & 100\% & 100 \text{ ns} \\ \hline \end{array} \]Find \( T_{avg} \) for hierarchical or simultaneous access.
What is the output of the following C code?
void foo(int *p, int x) {
*p = x;
}
void main() {
int *z;
int a = 20, b = 25;
z = a; // Incorrect: Should be z = a;
foo(z, b);
printf("%d", a);
}
Issue: The statement z = a; is invalid because a is an integer, and z is a pointer.