[자바] 자바계산기 짜야하는데, 스택좀 가르쳐주세요.

자바에 대해서는 이제 겨우3주 공부한 학생입니다.

과제로 너무 무지막지한것을 많이 내주셔서.. 단시간에 간단하지만 나름대로재밌는 프로그램 짜봤는데요.

이번과제는 특이하게 10일이나 주더군요.

5일동안.. 거의 밤을 새다시피해서 자료 찾아보고.. 공부하고 했는데..

스택을 구현하는데서 막혔습니다.
공학계산기 만들때.. 우선순위,후위계산,스택,StreamTokenizer 등등.. 각각은 이해가 가는데..

당췌 어떻게 후위계산해서 스택으로 넘기고 다시 우선순위정하는지 개념이 안잡혀요.

예를들면..
스택으로 우선순위 정하는 것을 단계별로 설명해주신분이 있는데, 무슨뜻인지 모르겠네요.

--------------------------------------------

|a
|

|
|a

|+
|a

|+b
|a

|+
|ab

|+*
|ab

|+*c
|ab

|+*/
|abc

|+*/d
|abc

|+*/
|abcd

|+*
|abcd/

|+
|abcd/*

|
|abcd/*+

---------------------------------------------------------------
그리고 후위계산식.. 전 간단하게, a+b*c-d가 있으면.

*

+ -

a b c d

해서, bc*a+d- 라고생각했는데, 밑에 다른분이 설명해주신것 보면, 그것도 아닌것 같고..

잘모르겠어요. 좀 도와주세요.
------------------------------------------------------------------------------

예를 알려드리면 a+b*(c/d) 란 식이 있으면
acd/b*+ 이렇게 표시를 하게 되고
스택으로 쌓아서 처리 순서를 보여드리겠습니다.

acd/b*+ 를먼저 c/d = e 라 하면
aeb*+ 가 되고 다시 e*b = f 라 하면
af+ 가 남게 됩니다
마지막으로 a+f = g 라하면
스택 botton 에는 g 값이 남아 있겠죠 ? 그러면
파싱처리한 스택크기가 1이고 후위법 처리한 자료가 없을때 g 를 리턴하면 되는거죠.

------------------------------------------------------------------------------
P.S.에효. 나름대로 자료구조론 책..(아직 다 보진 않았지만,)도 보고,

자바관련책(2권정도 봤는데.. 주로 클래스 설명만 되어있네요.)도 보고 하는데..

C언어 공부후.. C++과 같이 공부하다보니.. 비슷하면서도 서로 헷갈리네요.ㅋ

댓글 1

  • 돋가이 2026.07.21

    헛;;;우리학교네 -_-

프로그램 개발일반 다른 글

목록