λͺ©μ ¶
λ€νμμ κ³±μ
μ μ΄μ©νλ νλ‘κ·Έλ¨μ μμ±νλ€.
μλ£κ΅¬μ‘° ¶
νλμ νμ coefficient μ exponent λ‘ κ΅¬μ±λλ€. νλμ ν(λ¨νμ)μ νννλ μλ£κ΅¬μ‘°λ λ€μμ²λΌ ꡬ쑰체λ₯Ό μ¬μ©νλ€. (μ¬κΈ°μλ μ§μμ λ°λͺ¨λ integerλ₯Ό μ¬μ©νλ€)
λ€νμμ νννλμλ£κ΅¬μ‘°λ ν¬κ² λκ°μ§λ‘ μκ°ν΄ λ³Ό μ μλ€. linked list μ array μ΄λ€. λ°°μ΄μ λͺ¨λλ€ μ μκ² κ³ linked list λ λμ μΌλ‘ storageλ₯Ό ν λΉλ°μ κ° λ Έλλ₯Ό ν¬μΈν°λ‘ μ°κ²°ν μλ£κ΅¬μ‘°λ₯Ό λ§νλ€..(λΌκ³ μ°μ μ€λͺ λ§ ν΄λ¬μΌμ§ μ νν μ μλ λ΄λ¦¬μ§ λͺ»νκ² λ€..-_-). λ¬Όλ‘ λμ μΌλ‘ ν λΉλ°μ§ μκ³ λ linked list λ₯Ό ꡬνν μ μμ§λ§ κ·Έλ΄κΊΌλ©΄ λ°°μ΄λ‘ νλκ² λ«μ§ κ·Έ λ Έκ°λ€λ₯Ό λνλ¬ νλ...-_-
~cpp struct Node { int coef; // λ° int exp; // μ§μ };
λ€νμμ νννλμλ£κ΅¬μ‘°λ ν¬κ² λκ°μ§λ‘ μκ°ν΄ λ³Ό μ μλ€. linked list μ array μ΄λ€. λ°°μ΄μ λͺ¨λλ€ μ μκ² κ³ linked list λ λμ μΌλ‘ storageλ₯Ό ν λΉλ°μ κ° λ Έλλ₯Ό ν¬μΈν°λ‘ μ°κ²°ν μλ£κ΅¬μ‘°λ₯Ό λ§νλ€..(λΌκ³ μ°μ μ€λͺ λ§ ν΄λ¬μΌμ§ μ νν μ μλ λ΄λ¦¬μ§ λͺ»νκ² λ€..-_-). λ¬Όλ‘ λμ μΌλ‘ ν λΉλ°μ§ μκ³ λ linked list λ₯Ό ꡬνν μ μμ§λ§ κ·Έλ΄κΊΌλ©΄ λ°°μ΄λ‘ νλκ² λ«μ§ κ·Έ λ Έκ°λ€λ₯Ό λνλ¬ νλ...-_-
- λ°°μ΄μ μ¬μ©ν λ°©λ²
~cpp Node expr_1[SIZE]; // μ΄μ κ°μ μμΌλ‘ νννλ€. Node expr_2[SIZE];
- linked list λ₯Ό μ¬μ©ν λ°©λ²
~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;
μ΄ λ°©λ²μ μ¬μ©ν λ λ°μν μ μλ λ¬Έμ μ μ memory leakage (λ©λͺ¨λ¦¬ λμ)μ΄λ€. Javaκ°μ κ²½μ°λ μ°λ κΈ° μμ§κΈ°κ° μμ§λ§ c λ μ½λ(-_-)κ° μΌμΌμ΄ μ¬μ©λμ§ μλ μμμ νμν΄μ€μΌ νλ€. κ·Έλ μ§ μμΌλ©΄ κ·Έ μμμ λ€μ μ¬μ©ν μ μκ² λλ€.
specification ¶
λ€μκ³Ό κ°μ prototype μ κ°λ ν¨μλ₯Ό ꡬνν΄μΌ νλ€. (μ΄λ¦μ λ¬λ¦¬ν΄λ μκ΄μλ€..)
~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) // λ€νμμ λ΄λ¦Όμ°¨μμΌλ‘ μ 리νλ€.
input data ¶
λ€μκ³Ό κ°μ μλ£μ ν©, μ°¨, κ³±μ 리ν΄νλ νλ‘κ·Έλ¨μ μμ±νμμ€
~cpp μ1 : 2x^5 + 3x^2 - 2x + 10 μ2 : 2x^4 + x^3 - 5x^2 +3
μ‘λ΄ ¶
- λ€νμμ νννλ ν΄λμ€λ₯Ό λ§λ€μ΄μ operator overloading μ μ¬μ©ν΄λ λκ² μ§λ§ μ΄λ μμ λ§ν λ΄μ©μ μ΄λ―Έ ꡬνν ν μ΄κ±Έ ν΄λμ€λ‘ ν¬μ₯νλκ±°κΈ°λλ¬Έμ μ§κΈμμ€μμλ 무리λΌκ³ μκ°λ¨... - μμΈν
- μ΄κ±° μλ
μ νλ€κ° νλͺ
("μμ°½μ΄")λ§ κ²¨μ° νμμ΄μ μ λ μ΄κ±° νλ€ ν¬κΈ°νκ³ 1νλ
μκ² λ μ΄λ €μ΄ λ¬Έμ κ° μλλ°μ§...-μ¬λ
see Also λ°λΈμ€μΊ ν2002