티스토리 뷰

전공/자료구조

MaxDegree를 이용한 Polynomial

무한공백 2009. 7. 16. 05:49

다항식 덧셈하기 소스

 

다항식의 표현에는 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번 방법의 소스를 첨부함.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함