Stack is LIFO data structure (Last In First Out) where the last element entered in stack will be the last one to be out of stack. It has three operations: push() : used to insert an element in stack, pop() : used to delete an element from the stack, top() : used to return the top of the stack i.e. the newest member of the stack. All these operations will take place at the top.
<u>Explanation:</u>
Now, looking at the program, x and y are initialized the values of 2 and 3 respectively. The stack pushes 8 onto the stack making it the first member of the stack. Then the value of x which is 2 is pushed onto the stack. Next, (x+5) = (2+5) = 7 is pushed onto the stack.
Pop() is used to delete hence 7 is popped out from the stack. top() is assigned to y which is 2 in this case and again 2 is popped out from the stack. Now, (x+y) = (2+2) = 4 is pushed onto the stack. And the top() is assigned to x which is 4. 4 is again popped out from the stack. Hence the value of x is 4.
I would say the correct answer is #1.
Shuffle (A[1..m], B[1..n], C[1..m+n]):
Shuf[0, 0] ← True
for j ← 1 to n
Shuf[0, j] ← Shuf[0, j − 1] ∧ (B[j] = C[j])
for i ← 1 to n
Shuf[i, 0] ← Shuf[i − 1, 0] ∧ (A[i] = B[i])
for j ← 1 to n
Shuf[i, j] ← False
if A[i] = C[i + j]
Shuf[i, j] ← Shuf[i, j] ∨ Shuf[i − 1, j]
if B[i] = C[i + j]
Shuf[i, j] ← Shuf[i, j] ∨ Shuf[i, j − 1]
return Shuf[m, n]
The algorithm runs in O(mn) time.
Ethernet is the best in reliability and speed