~cpp
struct Node {
int coef; // 밑
int exp; // 지수
};
~cpp Node expr_1[SIZE]; // 이와 같은 식으로 표현한다. Node expr_2[SIZE];
~cpp
// 위의 정의한 구조체에 포인터 변수 두개가 더 필요하다.
struct Node {
int coef;
int exp;
Node *prev;
Node *next;
};
Node *n1 = new Node;
Node *n2 = new Node;
n1->next = n2;
n1->prev = NULL;
n2->next = NULL;
n2->prev = n1;
~cpp Node* mul(Node *n1, Node *n2); // 두 다항식의 곱을 표현하는 새로운 다항식을 리턴한다. Node* add(Node *n1, Node *n2); // 두 다항식의 합을 표현하는 새로운 다항식을 리턴한다. Node* add(Node *n1, Node *n2); // 두 다항식의 차를 표현하는 새로운 다항식을 리턴한다. /* 문제점 : 다음과 같은 경우는 어떻게 처리해야 할까? n1 = mul(n1, n2); // n1 이 중복 사용되었다.. */ Node* input(); // 사용자에게 값을 입력받아 새로운 다항식을 생성하여 리턴한다. void delete(Node *node) // 다항식을 삭제한다. void sort(Node *node) // 다항식을 내림차순으로 정리한다.
~cpp
식1 : 2x^5 + 3x^2 - 2x + 10
식2 : 2x^4 + x^3 - 5x^2 +3