Top MCQs on Stack Data Structure with Answers

Last Updated :
Discuss
Comments

Question 1

Following is a pseudo code of a function that takes a number as an argument, and uses a stack S to do processing.

Python
def fun(n):
    S = []  # Say it creates an empty stack S
    while n > 0:
        # This line pushes the value of n%2 to stack S
        S.append(n % 2)
        n = n // 2

    # Run while Stack S is not empty
    while S:
        print(S.pop(), end=' ')  # 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

Consider the following pseudocode that uses a stack 

Python
# Declare a stack of characters
word = "example"  # Replace with the word you want to read
char_stack = []

# While there are more characters in the word to read
for c in word:
    char_stack.append(c)  # Push the character on the stack

# While the stack is not empty
while char_stack:
    c = char_stack.pop()  # Pop a character off the stack
    print(c, end='')  # Write the character to the screen

What is output for input "geeksquiz"?

  • geeksquizgeeksquiz

  • ziuqskeeg

  • geeksquiz

  • ziuqskeegziuqskeeg

Question 3

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)
   {
      read a character
      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 4

The following postfix expression with single digit operands is evaluated using a stack:

8 2 3 ^ / 2 3 * + 5 1 * - 

Note that ^ is the exponentiation operator. The top two elements of the stack after the first * is evaluated are:

  • 6, 1

  • 5, 7

  • 3, 2

  • 1, 5

Question 5

Let S be a stack of size n >= 1. Starting with the empty stack, suppose we push the first n natural numbers in sequence, and then perform n pop operations. Assume that Push and Pop operation take X seconds each, and Y seconds elapse between the end of one such stack operation and the start of the next operation. For m >= 1, define the stack-life of m as the time elapsed from the end of Push(m) to the start of the pop operation that removes m from S. The average stack-life of an element of this stack is

  • n(X+ Y)

  • 3Y + 2X

  • n(X + Y)-X

  • Y + 2X

Question 6

A single array A[1..MAXSIZE] is used to implement two stacks. The two stacks grow from opposite ends of the array. Variables top1 and top2 (topl< top 2) point to the location of the topmost element in each of the stacks. If the space is to be used efficiently, the condition for “stack full” is:

  • (top1 = MAXSIZE/2) and (top2 = MAXSIZE/2+1)

  • top1 + top2 + 1 = MAXSIZE

  • (top1= MAXSIZE/2) or (top2 = MAXSIZE)

  • top1= top2 -1

Question 7

Assume that the operators +, -, × are left associative and ^ is right associative. The order of precedence (from highest to lowest) is ^, x , +, -. The postfix expression corresponding to the infix expression a + b × c - d ^ e ^ f is

  • abc × + def ^ ^ -

  • abc × + de ^ f ^ -

  • ab + c × d - e ^ f ^

  • - + a × bc ^ ^ def

Question 8

To evaluate an expression without any embedded function calls :
 

  • As many stacks as the height of the expression tree are needed

  • One stack is enough

  • Two stacks are needed

  • A Turing machine is needed in the general case

Question 9

The result evaluating the postfix expression 10 5 + 60 6 / * 8 – is

  • 284

  • 213

  • 142

  • 71

Question 10

A function f defined on stacks of integers satisfies the following properties. f(∅) = 0 and f (push (S, i)) = max (f(S), 0) + i for all stacks S and integers i.

If a stack S contains the integers 2, -3, 2, -1, 2 in order from bottom to top, what is f(S)?

  • 6

  • 4

  • 3

  • 2

There are 30 questions to complete.

Take a part in the ongoing discussion