Engineering Questions with Answers - Multiple Choice Questions

# Data Structure MCQ – Reverse a Word using Stack

1 - Question

Reversing a word using stack can be used to find if the given word is a palindrome or not.
a) True
b) False

Explanation: This application of stack can also be used to find if the given word is a palindrome because, if the reversed is same as that of the original word, the given word is a palindrome.

2 - Question

Which is the most appropriate data structure for reversing a word?
a) queue
b) stack
c) tree
d) graph

Explanation: Stack is the most appropriate data structure for reversing a word because stack follows LIFO principle.

3 - Question

Operations required for reversing a word or a string using stack are push() and pop().
a) True
b) False

Explanation: Push operation inserts a character into the stack and pop operation pops the top of the stack.

4 - Question

What is the time complexity of reversing a word using stack algorithm?
a) O (N log N)
b) O (N2)
c) O (N)
d) O (M log N)

Explanation: The time complexity of reversing a stack is mathematically found to be O (N) where N is the input.

5 - Question

What will be the word obtained if the word “abbcabb” is reversed using a stack?
a) bbabbca
b) abbcabb
c) bbacbba
d) bbacabb

Explanation: The string “abbcabb” is pushed on to the stack. If the characters are popped one by one, the word obtained will be bbacbba.

6 - Question

How many stacks are required for reversing a word algorithm?
a) one
b) two
c) three
d) four

Explanation: Only 1 stack is required for reversing a word using stack. In that stack, push and pop operations are carried out.

7 - Question

What will be result if the given stack is popped?

a) pat
b) tap
c) atp
d) apt

Explanation: The word ‘pat’ is pushed on to the stack. When the characters of the stack are popped one by one, the word ‘tap’ is obtained.

8 - Question

What will be output if the following sequence of operations are executed?

```Push(a,s);
Push(b,s);
Pop(b);
Push(c,s);
```

a) abc
b) b
c) ac
d) acb

Explanation: The element ‘b’ is popped out of the stack. Hence the output of the following sequence of operations will be ‘b’.

9 - Question

What are the set of functions that are to be executed to get the following output?
cat
a) push(c, s); push(a, s); push(t, s);
pop(s); pop(s); pop(s);
b) push(c,s); pop(s); push(a,s); pop(s);push(t,s);pop(s);
c) pop(c ); pop(a); pop(t);
d) push(c,s); push(a,s); pop(t);

Explanation: During push operation, the characters ‘c’, ’a’, ’t’ are inserted into the stack and popped immediately after push.

10 - Question

How will your stack look like if the word ‘java’ is pushed?
a)
b)
c)
d)

Explanation: When a character is pushed, it stays on the top of the stack. While popping, the word occurs in reverse order since stack follows LIFO principle.

11 - Question

Find the error (if any) in the following code snippet for pop operation.

```void pop() //removing an element from a stack
{
printf(“%s”, stack[top++]);
}```

a) run time error
b) compile time error
c) pop operation is performed, but top moved in wrong direction
d) pop operation is performed properly

Explanation: The statement printf(“%s”, stack[top++]) does a pop, but top gets incremented which is not correct. The statement stack[top++] should be replaced with stack[top–] in order to pop an operand and maintain stack properly.

12 - Question

What will be the output of the following program?

```main()
{
char str[]="san foundry";
int len = strlen(str);
int i;

for(i=0;i<len;i++)
push(str[i]);  // pushes an element into stack

for(i=0;i<len;i++)
pop();  //pops an element from the stack
}```

a) sanfoundry
b) san foundry
c) yrdnuof nas
d) foundry nas