// Balanced.cpp // a hurried implementation of balanced brackets #include using namespace std; #include "ArrayStack.h" bool test(char *argg); // uses C-strings int main(int argc, char *argv[]) { if( argc==1) cout << "Add string on command-line! (in quotes)" << endl; else cout << boolalpha << test( argv[1] ) << endl; return 0; } bool test(char *argg) // accepts balanced strings of ()[]{} { 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 }