~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