Я пытаюсь написать программу, которая будет проверять пользовательский ввод, состоящий из скобок, для правильного вложения с использованием стека. Я пытаюсь сделать это без использования контейнеров STL или рекурсии. Я несколько наткнулся на блокпост и ищу немного толчка в правильном направлении. Я думаю, что я отчасти близок, но я чувствую, что, возможно, слишком упрощаю это (я нахожусь в процессе обучения через самообучение)
Вот что у меня есть:
#include <iostream>
#include <string>
#include "ArrayStack.h"
using namespace std;
bool test(char *argg);
int main()
{
string input;
int size = 50;
cout << "enter here: ";
getline(cin, input);
for (int i = 0; i < size; i++)
test(input[i]);
}
bool test(char *argg)
{
ArrayStack S;
char D;
while ( *argg ) {
switch( *argg ) {
case '[': case '{': case '(':
S.push( *argg );
break;
case ']':
if( S.isEmpty() )
return false;
D = S.pop();
if( D!='[' )
return false;
break;
case '}':
if( S.isEmpty() )
return false;
D = S.pop();
if( D!='{' )
return false;
break;
case ')':
if( S.isEmpty() )
return false;
D = S.pop();
if( D!='(' )
return false;
break;
default:
return false;
}// end switch
argg++;
}// end while
return S.isEmpty(); // return true if reach here with empty stack
}
Спасибо за любую помощь заранее