스택 응용 5. 괄호 매칭
2022. 4. 23. 00:38ㆍC++/자료구조
C/C++에서는 중괄호를 사용하여 소스 코드를 묶는다. 소스 코드에 여는 괄호가 두 번 나왔다면 닫는 괄호도 반드시 두 번 나와야 한다.
실제로 이러한 문법 검증 작업은 컴파일에 의해 이루어지며 이를 위해 컴파일러는 스택을 사용한다.
다음은 유사코드로 작성한 괄호의 매칭이다.
Matched = TRUE; //매칭 상태를 표시하는 변수 초기화
while(index <String.Length && Matched)
{
Character = String[index++]; //새로운 문자를 잀어서
if(Character is '{' ) //여는 중괄호면
push('{'); //스택에 푸시
elsee if(Character is '}')//닫는 중괄호면
if(Not StackIsEmpty) //스택이 비어있지 않다면
Pop() //여는 괄호 제거
else
{
Matched =False;
Break;
}
}
return Matched;
이를 응용한 문제는 다음과 같다.
'C++ > 자료구조' 카테고리의 다른 글
연결리스트를 이용한 큐 구현 (0) | 2022.04.23 |
---|---|
큐(Queue) (0) | 2022.04.23 |
스택 응용 4. 문자열 뒤집기 (0) | 2022.04.23 |
스택 응용 3. 진법 변환 (0) | 2022.04.23 |
스택 응용 2. 후위 표현의 연산 (0) | 2022.04.23 |