2012-09-27 2 views
1

나는 Node이라는 클래스가 있습니다.*, /, +, - 이외의 연산자가있는 RPN

public Node 
{ 
    public int data; 
    public Node primaryNext; 
    public Node secondaryNext; 
} 

은 내가 Node root = null;을 그리고 첫 번째 값이 입력에서 수신 될 때, 그것은 다음과 같은 뭔가를 실행합니다.

root = new Node; 
root.data = /*input*/ ; 
root.primaryNext = null; 
root.secondaryNext = null; 

다음 단계는 수준으로 "포인터"트리를 작성하는 동안 새로운 Noderoot.primaryNext 또는 root.secondaryNext을 지정하여 목록의 마지막에 새로운 Node을 추가하고있다. 그래서 나는 같은 것을 할 필요가 :

GIF of the idea.

내가이 || 사용하여 수행 할 수 있다고 생각 & &, |, 재귀 방법 노드의 각 수준에 적용 & 운영자. 따라서 :

  • RPN과 같이 C#으로 어떻게 작동합니까?
  • 할 수 있다면 가장 좋은 방법은 무엇입니까? 나는 재귀를 꽤 잘 이해하지만 최선의 방법을 사용하지 않을 수도있다.

감사합니다.

답변

0

제안 :

단일 노드를 스택으로 푸시하기위한 하나의 명령입니다.

스택에서 두 개의 맨 위 노드를 가져오고 스택에서 결과를 다시 밀어 넣으라는 또 다른 명령입니다.

+0

감사합니다. –

관련 문제