자바(Java)로 중위식(Infix)을 후위식(Postfix)으로 변환하여 계산하기
본 자료는 미만의 자료로 미리보기를 제공하지 않습니다.
닫기
  • 1
해당 자료는 0페이지 까지만 미리보기를 제공합니다.
0페이지 이후부터 다운로드 후 확인할 수 있습니다.

본문내용

본 프로그램은 중위식(Infix)을 후위식(Postfix)으로 변환한 다음에

계산하는 자바(Java) 프로그램입니다.

클래스는 MyCalculatorDemo, MyCalculator, MyExprTokenizer, MyToken으로 구성됩니다.

MyCalculatorDemo는 본 프로그램을 테스트하는 클래스입니다.

MyCalculator는

ArrayList translateFromInfixToPostfix(String infix);
int calculatePostfix(ArrayList postfix);

두 개의 메소드로 구성되어 있습니다.

translateFromInfixToPostfix()는 중위식(Infix)을 문자열로 받아서

후위식(Postfix)을 ArrayList 형식으로 반환하는 메소드입니다.

calculatePostfix()는 후위식을 ArrayList로 받아서

계산 결과를 int 값으로 반환하는 메소드입니다.

MyExprTokenizer는 중위식의 문자열을 토큰화하기 위한 클래스입니다.

MyToken는 토큰 정보를 위한 클래스입니다.

컴파일은

javac -cp . MyCalculatorDemo.java

실행은

java -cp . MyCalculatorDemo 1+2*(3-4)

와 같이 할 수 있습니다.

실행 결과는 중간에 남은 토큰, 스택 상태, 중간 결과뿐만 아니라,

액션까지 표시합니다.

또한, 괄호 연산 기능도 포함하고 있습니다.

실행 결과는 다음과 같습니다.


**************************************************
INFIX:
1+2*(3-4)
**************************************************


**************************************************
TOKENS:
[1, +, 2, *, (, 3, -, 4, )]
**************************************************


**************************************************
POSTFIX:
[1, 2, 3, 4, -, *, +]
**************************************************


**************************************************

==================================================
# Tokens: [1, 2, 3, 4, -, *, +]
# Stack: []
# Token [1] is operand...
# The operand is pushed into the stack...
==================================================


==================================================
# Tokens: [2, 3, 4, -, *, +]
# Stack: [1]
# Token [2] is operand...
# The operand is pushed into the stack...
==================================================


==================================================
# Tokens: [3, 4, -, *, +]
# Stack: [1, 2]
# Token [3] is operand...
# The operand is pushed into the stack...
==================================================


==================================================
# Tokens: [4, -, *, +]
# Stack: [1, 2, 3]
# Token [4] is operand...
# The operand is pushed into the stack...
==================================================


==================================================
# Tokens: [-, *, +]
# Stack: [1, 2, 3, 4]
# Token [-] is operator...
# Two operands are popped from the stack...

--------------------------------------------------
# Operator: -
# Operand 1: 3
# Operand 2: 4
# Intermediate result: -1
--------------------------------------------------

# The intermediate result is pushed into the stack...
==================================================


==================================================
# Tokens: [*, +]
# Stack: [1, 2, -1]
# Token [*] is operator...
# Two operands are popped from the stack...

--------------------------------------------------
# Operator: *
# Operand 1: 2
# Operand 2: -1
# Intermediate result: -2
--------------------------------------------------

# The intermediate result is pushed into the stack...
==================================================


==================================================
# Tokens: [+]
# Stack: [1, -2]
# Token [+] is operator...
# Two operands are popped from the stack...

--------------------------------------------------
# Operator: +
# Operand 1: 1
# Operand 2: -2
# Intermediate result: -1
--------------------------------------------------

# The intermediate result is pushed into the stack...
==================================================

RESULT:
-1
******************************

키워드

자바,   Java,   중위,   Infix,   후위,   Postfix,   변환,   계산
  • 가격800
  • 페이지수1페이지
  • 등록일2006.02.28
  • 저작시기2006.02
  • 파일형식기타(java)
  • 자료번호#337902
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니