Google에서 너무 많은 알고리즘을 찾았지만, 중위어를 후행으로 변환하는 실행 가능한 알고리즘을 찾을 수 없습니다. C#에서 접미사 방정식에 중위 방정식을 변환하는 방법? 제발 도와주세요 ...중위 방정식을 C#의 접미사 방정식으로 변환하는 방법?
-4
A
답변
0
이것은 프로그램 학습을위한 훌륭한 작은 프로젝트입니다. 두 부분으로 나뉩니다. 코드를 트리로 구문 분석 한 다음 트리를 포스트 픽스로 인쇄합니다. 각 트리 노드는 루트 노드로 4 + (5/6)
이 +
이고 하위 노드가 4와 5/6 인 두 명의 하위 연산자가 있습니다. 5/6
노드를 자세히 살펴보면 부모가 /
이고 자식이 5
및 6
인 두 명의 하위 노드가있는 상위 노드를 찾을 수 있습니다.
구문 분석은 가장 어려운 부분입니다. 표현식을 파싱하려면 구문 분석하고 연산자를 찾고 연산자의 왼쪽과 오른쪽에 무엇이 필요한지주의하십시오. 연산자는 노드이고 두 개의 자식 즉 Parse(stuff to the left)
과 Parse(stuff to the right)
이 있습니다. 빼기 (단항 연산자이므로 엄격하게 중점을 두지 않음)에주의를 기울여야합니다. 마이너스를 특별한 경우로 취급하는 것이 좋습니다. -4
은 한 개의 자식이 아닌 -4
으로 구문 분석되어야합니다. 방정식을 파싱 할 때 모든 내부 노드는 연산자이어야하고 모든 리프 노드는 숫자가되어야합니다.
구문 분석 한 후에 인쇄하십시오. 루트 노드의 경우 print(node)
은 "(", 왼쪽 자식 (재귀 적으로 인쇄), 오른쪽 자식 (재귀 적으로 인쇄), 연산자를 누른 다음 ")"을 사용하여 식 (노드)을 닫습니다.
알고리즘에 대한 링크가 필요하지 않지만 직접 구현하는 경우 실제로는 훨씬 더 커질 것입니다.
관련 문제
- 1. 중위 접미사 표기법 C++
- 2. 중위 접두사 접미사
- 3. Javascript의 수학 함수를 수학 방정식으로 변환하는 방법?
- 4. 인덱싱을 감소시키는 방정식을 합계를 사용하여 수학 방정식으로 변환하는 방법은 무엇입니까?
- 5. C# 함수를 논문 작성을위한 수학 방정식으로 변환하는 방법
- 6. 중위 식을 접미사 식으로 변환 - 공백 삽입이 잘못되었습니다.
- 7. 파스칼 문자열을 방정식으로 사용하는 방법
- 8. 중위, 중위 어, 중위 간
- 9. Open Xml 수학 방정식을 MathML로 변환하는 방법
- 10. 문자열 C# 방정식을 대답으로 변환하는 방법
- 11. 자바 스크립트에서 문자열 방정식을 숫자로 변환하는 방법?
- 12. 스택을 사용하는 중위 어에서 중위 어
- 13. z3 표현식을 중위 표현식으로 변환하는 방법은 무엇입니까?
- 14. 중위 함수를 작성하는 방법
- 15. 스택을 사용하는 중위 어에서 중위 어
- 16. 스칼라 중위/후위 연산자
- 17. 지수 형식을 C의 십진수 형식으로 변환하는 방법
- 18. JNI jdoublearray를 C의 double로 변환하는 방법 * (포인터)
- 19. 중위 어와 단항/이항 연산자
- 20. 이 방정식을 C 코드로 변환하는 방법은 무엇입니까?
- 21. 플래시로 수학 방정식을 작성하십시오.
- 22. 액션 스크립트 2.0을 사용하여 입력 텍스트를 방정식으로 포맷하는 방법
- 23. 는 중위
- 24. 접미사 표기법의 숫자가 알려진 경우 접미사 표기법의 문자 수는
- 25. 접미사/접미사 증가 연산자
- 26. 접미사 - 접미사 변환기
- 27. 파일의 데이터를 방정식으로 사용합니다. Python 3.4
- 28. Xcode 방정식 문자열을 수학 방정식으로 변환하기
- 29. 접미사 :
- 30. 접미사
이 게시물을보십시오 http://stackoverflow.com/questions/1438030/infix-to-postfix-converter 또는 this one http://www.codeproject.com/Tips/370486/Converting-InFix-to -PostFix-using-Csharp-VB-NET – Mulflar