[データ構造]多項式-DT、表示方法、多項式加算
多項式
多項式ADT
ZeroP()
: return p(X)=0 IsZeroP(p)
: if (poly) return FALSE else return TRUE coef(p, e)
: if (maxExp(p)
:return max(最高差を返す)addTerm(p, c, e)
if(delTerm(p, e)
if(singleMult(p, c, e)
return poly c x^e polyAdd(p1, p2)
return p1 + p2 polyMult(p2, p2)
return p1 * p2 多項式演算の実現
zeroP()
およびaddTerm()
を使用して作成addTerm(addTerm(addTerm(zeroP(), a, 3), b, 2), 5, 0)
= $a*x^3 + b*x^2+5$표
係数が0の項
表示方法
1ππはすべての差のカウント値を配列として格納する
![](https://s1.md5.ltd/image/399bbaf793e24918201520f197f44c62.png)
typedef struct {
int degree;
float coef[MAX_DEGREE];
} polynomial;
2▼▼▼▼指数と係数が存在する港湾配列
![](https://s1.md5.ltd/image/1adb58285fa6f9d25abf221fd641a542.png)
#define MAX_TERMS 100 // 지수가 존재하는 term 최대수
typedef struct {
float coef; //계수
float expon; //지수
} polynomial;
polynomial term [MAX_TERMS];
int avail = 0; // 다음 번 빈 슬롯의 array index 번호 유지
表示法:terms[MAX TERMS]={{10,5},{6,1},{3,0}
1つの配列は複数の多項式を表すことができる
![](https://s1.md5.ltd/image/c36bade5094046650290b49cabcb5b23.png)
![](https://s1.md5.ltd/image/d1ab9851dfd90e8452eb0cc45f50024b.png)
多項式加算関数を表すアルゴリズム
polyAdd(p1, p2)
// p3 = p1 + p2 : 다항식 p1과 p2를 더한 결과 p3을 반환
p3 = zeroP();
while (not isZeroP(p1) and not isZeroP(p2) do {
case {
maxExp(p1) < maxExp(p2) :
p3=addTerm(p3, coef((p2), maxExp(p2)), maxExp(p2);
p2=delTerm(p2, maxExp(p2));
maxExp(p1) = maxExp(p2) :
sum=coef(p1, maxExp(p1)) + coef(p2, maxExp(p2));
if (sum != 0) then p3 = addTerm(p3, sum, maxExp(p1));
p1 = delTerm(p1, maxExp(p1));
p2 = delTerm(p2, maxExp(p2));
maxExp(p1) > maxExp(p2) :
p3 = addTerm(p3, coef(p1, maxExp(p1)), maxExp(p1));
p1 = delTerm(p1, maxExp(p1));
}
}
if (not isZero(p1)) then p1의 나머지 항들을 p3에 복사
else if (not isZeroP(p2)) then p2의 나머지 항들을 p3에 복사
return p3;
end polyAdd()
ゲートin→p 1とp 2を同時に比較し,大指数からp 3にコピーした.while out→p 1またはp 2で先に終了した場合、その残りをp 3にコピーする
![](https://s1.md5.ltd/image/34873c86329497365241a66b9b7fbcb2.png)
Reference
この問題について([データ構造]多項式-DT、表示方法、多項式加算), 我々は、より多くの情報をここで見つけました https://velog.io/@beneficial/자료구조-다항식-ADT-연산-구현テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol