*해당 문서는 미리보기가 지원되지 않습니다.
소개글
인하대학교 자료구조 네번째 과제물입니다.각각의 문제에 대한 소스코드(주석포함) 및 실행파일이 압축되어있습니다.
입력받은 수식에 대하여 수식계산, 트리 높이계산, postorder, inorder, preorder 순회출력 등의 인터페이스를 제공합니다.
자세한 문제내용은 아래와 같습니다.
Homework 4
다음과 같은 인터페이스를 갖는다.
Enter your selection (1: New Expression, 2: Evaluate, 3: Height, 4: Size, 5: Preorder, 6: Inorder, 7:Postorder, 8: Quit): 1
Enter a new expression: (((8/2)*(6-3))+4)
이때 주어지는 수식은 빈칸이 없고 한자리 숫자로 이루어진다. 프로그램은 다음과 같은 이진트리를 내부적으로 구성한다.
Enter your selection (1: New Expression, 2: Evaluate, 3: Height, 4: Size, 5: Preorder, 6: Inorder, 7:Postorder, 8: Quit): 2
Value of Expression = 16
Enter your selection (1: New Expression, 2: Evaluate, 3: Height, 4: Size, 5: Preorder, 6: Inorder, 7:Postorder, 8: Quit): 3
Height of the tree = 3
Enter your selection (1: New Expression, 2: Evaluate, 3: Height, 4: Size, 5: Preorder, 6: Inorder, 7:Postorder, 8: Quit): 4
Number of nodes = 9
Enter your selection (1: New Expression, 2: Evaluate, 3: Height, 4: Size, 5: Preorder, 6: Inorder, 7:Postorder, 8: Quit): 5
+*/82-634
Enter your selection (1: New Expression, 2: Evaluate, 3: Height, 4: Size, 5: Preorder, 6: Inorder, 7:Postorder, 8: Quit): 6
8/2*6-3+4
Enter your selection (1: New Expression, 2: Evaluate, 3: Height, 4: Size, 5: Preorder, 6: Inorder, 7:Postorder, 8: Quit): 7
82/63-*4+
Enter your selection (1: New Expression, 2: Evaluate, 3: Height, 4: Size, 5: Preorder, 6: Inorder, 7:Postorder, 8: Quit): 8
Bye!!
ex) 8
(4+3)
((5-2)*(3+4))
(4+(2+(3*1)))
컴파일 실행환경
Visual Studio 2008본문내용
// Expression.cpp#include <iostream>
#include "BinaryTree.h"
#include "CharIter.h"
#define SIZE 256 // 버퍼 사이즈 정의
using namespace std;
void flushBuffer(char* buffer, int size); // 새로운 식을 입력받기 위해 버퍼를 비움
void parseChar(CharIter* buffer, BinaryTree<char>::Node* np);
// 버퍼에 저장된 입력받은 식을 분리하여 이진트리에 저장
void showPreorder(BinaryTree<char>::Node* node); // Preorder 출력
void showInorder(BinaryTree<char>::Node* node); // Inorder 출력
void showPostorder(BinaryTree<char>::Node* node); // Postorder 출력
int evaluateExpression(BinaryTree<char>::Node* node); // 트리에 저장된 정보를 이용하여 입력식의 결과값 계산
int calculate(int num1, int num2, char opr); // 사칙연산 함수
BinaryTree<char> tree; // 전역변수 tree 선언
압축파일 내 파일목록
BinaryTree.h
CharIter.h
Expression.cpp
Homework4.exe
CharIter.h
Expression.cpp
Homework4.exe
참고 자료
(Data Structures and Algorithms in C++, Goodrich, Tamassia, Mount - WILEY)프로그램소스 연관자료
이 자료와 함께 구매한 자료
- 이진트리의 생성과 연산 C 프로그램 17페이지
- RLC 공진회로 6페이지
- [C언어]수식트리를 이용한 후위식 중위식 변환 프로그램 0페이지
- 이진트리 삽입 삭제 및 전위 중위 표기 0페이지
- c언어,자료구조,이진트리, 전위순회, 후위순회, 중위순회 3페이지