Рубрики

Структуры данных | Стек | Вопрос 5

Ниже приводится неправильный псевдокод для алгоритма, который должен определять, сбалансирована ли последовательность скобок:

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"

Какую из этих несбалансированных последовательностей считает приведенный выше код сбалансированным?

Источник: http://www.cs.colorado.edu/~main/questions/chap07q.html
(А) ((())
(B) ()) (()
(C) (() ()))
(D) (())) ()

Ответ: (А)
Объяснение: В конце цикла while мы должны проверить, пуст стек или нет. Для ввода ((()) стек не остается пустым после цикла. Подробнее см. Http://espressocode.top/check-for-balanced-parentheses-in-an-expression/ .

Рекомендуемые посты:

Структуры данных | Стек | Вопрос 5

0.00 (0%) 0 votes