오토마타] a의 갯수와 b의 갯수가 같은 문자열w를 인식하는 언어 인지 확인하는 C로구현한 프로그램

                                                               <언어L로 승인되지 않는 문자열>

                                                                  <언어L로 승인되는 문자열>

[오토마타 - 푸시다운오토마타 : PushDown Automata ]

input을{a,b}* 로 받아서 input이 a의 갯수와 b의 갯수가 같은 문자열w를 인식하는 언어 인지 확인하는 프로그램.

1 - Stack 사용하여 0과 1의 두가지 상태로 나눈다.
 (푸시다운오토마타 특성상 : stack에 0과 1외의 값을 넣지 않는다, 입력받은 a와 b의 갯수를 세는 변수를 사용하지 않는다.)
2 - 1의 상태 : a의 갯수가 더 많은 상때
3 - 0의 상태 : b의 갯수가 더 많은 상태

최종적으로 입력을 마친후 스택의 TOP이 Empty라면 즉, 문자열에서 a와 b의 갯수가 같으면
이 문자열은 문자 w를 인식하는 언어L로 인식할 수 있는 문자열이다.




글이 도움이 되셨거나 마음에 드셨다면
댓글을 꼭 남겨주세요.
댓글 하나하나에 힘이 난답니다!^^