티스토리 뷰
다항식 덧셈하기 소스
다항식의 표현에는 3가지 정도가 존재한다고 책에 써있다.
1번 .
#define MaxDegree 10000 // 배열 coef의 가장 최대값을 설정
class Polynomial{
public:
Polynomial(int d=0);
Polynomial Add(Polynomial p);
void initialize();
void Print();
private:
int degree;
int coef[MaxDegree+1];
};
위 소스와 다항식의 지수를 MAxDegree로 몽땅 잡아놓고 쓰는 방법
매우 불필요한 공간이 낭비된다.
2번.
private:
int degree;
float* coef;
요렇게 하고 생성자 부분에서
coef = new float[degree+1]
degree를 받아서 사용하는 방법
하지만 희소다항식이 발생할 경우 1번과 다를바가 없다.
3번.
class Term{
friend polynomial;
private:
float m_coef; // 다항식의 계수를 표현하는 변수 m_coef선언
int m_exp; // 다항식의 차수를 표현하는 변수 선언
};
Term 클래스를 만들어서 사용하는 방법 등등....
이중 1번방법과 3번 방법의 소스를 첨부함.
'전공 > 자료구조' 카테고리의 다른 글
stack을 이용한 중위표기식의 후위표기식 전환(infix to postfix) (0) | 2009.07.16 |
---|---|
LinkedList를 이용한 Polynomial (0) | 2009.07.16 |
댓글