# Top MCQs on Stack Data Structure with Answers

Last Updated : 27 Sep, 2023

Stack is a linear data structure that follows a particular order in which the operations are performed. The order may be LIFO(Last In First Out) or FILO(First In Last Out). LIFO implies that the element that is inserted last, comes out first and FILO implies that the element that is inserted first, comes out last.

More on stack Data Struucture

Stack Quiz

 Question 1
Following is C like pseudo code of a function that takes a number as an argument, and uses a stack S to do processing.
void fun(int n)
{
Stack S;  // Say it creates an empty stack S
while (n > 0)
{
// This line pushes the value of n%2 to stack S
push(&S, n%2);

n = n/2;
}

// Run while Stack S is not empty
while (!isEmpty(&S))
printf("%d ", pop(&S)); // pop an element from S and print it
}
What does the above function do in general?
 Prints binary representation of n in reverse order Prints binary representation of n Prints the value of Logn Prints the value of Logn in reverse order

Question 1-Explanation:
 Question 2
Following is C like pseudo code of a function that takes a number as an argument, and uses a stack S to do processing.
void fun(int n)
{
Stack S;  // Say it creates an empty stack S
while (n > 0)
{
// This line pushes the value of n%2 to stack S
push(&S, n%2);

n = n/2;
}

// Run while Stack S is not empty
while (!isEmpty(&S))
printf("%d ", pop(&S)); // pop an element from S and print it
}
What does the above function do in general?
 Prints binary representation of n in reverse order Prints binary representation of n Prints the value of Logn Prints the value of Logn in reverse order

Question 2-Explanation:
 Question 3
Which one of the following is an application of Stack Data Structure?
 Managing function calls The stock span problem Arithmetic expression evaluation All of the above

Question 3-Explanation:
 Question 4
Which one of the following is an application of Stack Data Structure?
 Managing function calls The stock span problem Arithmetic expression evaluation All of the above

Question 4-Explanation:
 Question 5
Which of the following is true about linked list implementation of stack?
 In push operation, if new nodes are inserted at the beginning of linked list, then in pop operation, nodes must be removed from end. In push operation, if new nodes are inserted at the end, then in pop operation, nodes must be removed from the beginning. Both of the above None of the above

Question 5-Explanation:
To keep the Last In First Out order, a stack can be implemented using linked list in two ways: a) In push operation, if new nodes are inserted at the beginning of linked list, then in pop operation, nodes must be removed from beginning. b) In push operation, if new nodes are inserted at the end of linked list, then in pop operation, nodes must be removed from end.
 Question 6
Which of the following is true about linked list implementation of stack?
 In push operation, if new nodes are inserted at the beginning of linked list, then in pop operation, nodes must be removed from end. In push operation, if new nodes are inserted at the end, then in pop operation, nodes must be removed from the beginning. Both of the above None of the above

Question 6-Explanation:
To keep the Last In First Out order, a stack can be implemented using linked list in two ways: a) In push operation, if new nodes are inserted at the beginning of linked list, then in pop operation, nodes must be removed from beginning. b) In push operation, if new nodes are inserted at the end of linked list, then in pop operation, nodes must be removed from end.
 Question 7

Consider the following pseudocode that uses a stack

## C

declare a stack of characters
while ( there are more characters in the word to read )
{
push the character on the stack
}
while ( the stack is not empty )
{
pop a character off the stack
write the character to the screen
}

What is output for input "geeksquiz"?

 geeksquizgeeksquiz ziuqskeeg geeksquiz ziuqskeegziuqskeeg

Question 7-Explanation:

Since the stack data structure follows LIFO order. When we pop() items from stack, they are popped in reverse order of their insertion (or push())

 Question 8

Consider the following pseudocode that uses a stack

## C

declare a stack of characters
while ( there are more characters in the word to read )
{
push the character on the stack
}
while ( the stack is not empty )
{
pop a character off the stack
write the character to the screen
}

What is output for input "geeksquiz"?

 geeksquizgeeksquiz ziuqskeeg geeksquiz ziuqskeegziuqskeeg

Question 8-Explanation:

Since the stack data structure follows LIFO order. When we pop() items from stack, they are popped in reverse order of their insertion (or push())

 Question 9

Following is an incorrect pseudocode for the algorithm which is supposed to determine whether a sequence of parentheses is balanced:

## C

declare a character stack
while ( more input is available)
{
if ( the character is a '(' )
push it on the stack
else if ( the character is a ')' and the stack is not empty )
pop a character off the stack
else
print "unbalanced" and exit
}
print "balanced"

Which of these unbalanced sequences does the above code think is balanced?

 ((()) ())(() (()())) (()))()

Question 9-Explanation:

At the end of while loop, we must check whether the stack is empty or not. For input ((()), the stack doesn\'t remain empty after the loop. See http://www.geeksforgeeks.org/check-for-balanced-parentheses-in-an-expression/ for details.

 Question 10

Following is an incorrect pseudocode for the algorithm which is supposed to determine whether a sequence of parentheses is balanced:

## C

declare a character stack
while ( more input is available)
{
if ( the character is a '(' )
push it on the stack
else if ( the character is a ')' and the stack is not empty )
pop a character off the stack
else
print "unbalanced" and exit
}
print "balanced"

Which of these unbalanced sequences does the above code think is balanced?

 ((()) ())(() (()())) (()))()

Question 10-Explanation:

At the end of while loop, we must check whether the stack is empty or not. For input ((()), the stack doesn\'t remain empty after the loop. See http://www.geeksforgeeks.org/check-for-balanced-parentheses-in-an-expression/ for details.

There are 60 questions to complete.