[ A90 @ 07.05.2006. 19:43 ] @
Pozdrav svima Kako mogu sljedeci kod uraditi preko stack-a? #include <iostream.h> #include<conio.h> bool valid(const char * t) { unsigned int z[3] = {0}; while(*t) { switch(*t){ case '(': z[2]++; break; case ')': if(z[2]==0) { cout << "Suvisna ')'.\n"; return false; } z[2]--; break; case '[': if(z[2]) { cout << "Nedozvoljeno otvaranje '['\n"; return false; } z[1]++; break; case ']': if(!z[1]) { cout << "Suvisna ']'.\n"; return false; } if(z[2]) { cout << "Nedozvoljeno zatvaranje ']'.\n"; return false; } z[1]--; break; case '{': if(z[2] || z[1]) { cout << "Nedozvoljeno otvaranje '{'.\n"; return false; } z[0]++; break; case '}': if(!z[0]) { cout << "Suvisna '}'.\n"; return false; } if(z[1] || z[2]) { cout << "Nedozvoljeno '}'.\n"; return false; } z[0]--; } t++; } if(z[0]||z[1]||z[2]) { cout << "Nezatvorene zagrade:" << (z[0]?" {":" ") << (z[1]?" [":" ") << (z[2]?" (":"") << '\n'; return false; } cout<<"Zagrade su dobro zatvorene!"; return true; } void main() { char text[500]; cout<<"Unesite relaciju:"; cin.getline(text,500); valid(text); char z; cin>>z; getch(); } Program provjerava ispravnost zagrada,tj.da li su sve zagrade u relaciji ispravno unesene. Unaprijed hvala |