Algorytmy i struktury danych Dodawanie wielomianów Piotr Kustra Faculty of Metals Engineering and Industrial Computer Science Department of Applied Computer Science and Modeling
Reprezentacja przez strukturę coeff ± A B C * 5 ± 4 2 3 *
Reprezentacja przez strukturę 1 + * 1 + * 1 + * - 1 * 1 + 2 * -2 + 1 * -1 + 1 * - 1 *
Wpp { coeff(Q) coeff(Q)+ coeff(P); Wskaźniki P i Q wskazują na pierwsze elementy struktury wielomianu Krok 1. Inicjalizacja. P i Q wskazują na pierwsze elementy struktury wielomianu Q1 Q, Q link(Q) Krok 2. Porównanie: Jeśli ABC(P)<ABC(Q): { Q1Q; Qlink(Q); powtórz krok 2} Wpp{ jeśli ABC(P) = ABC(Q) to krok 3; Wpp p krok 5} Krok 3. Dodawanie współczynników jeśli ABC(P)<0: STOP (zatrzymanie algorytmu) Wpp { coeff(Q) coeff(Q)+ coeff(P); Jeśli coeff(Q)=0; to krok 4 Wpp {Plink(P); Q1Q; Qlink(Q); Krok 2} Krok 4. Usuwanie elementu zerowego Q2Q; link(Q1)Qlink(Q); delete(Q2); Plink(P); Krok 2 Krok 5. Wstawianie nowego wyrazu New(Q2); coeff(Q2)coeff(P); ABC(Q)ABC(P); link(Q2)Q; link(Q1)Q2; Q1Q2; Plink(P); Krok 2. Wykład Dr. Danuta Szeliga
P Q Q1 Kolejne kroki 1 + * 1 + * 1 + * - 1 * 1 + 2 * -2 + 1 * -1 + 1 * * 1 + * 1 + * - 1 * Q Q1 1 + 2 * -2 + 1 * -1 + 1 * - 1 *
P Q Q1 ABC(P)<ABC(Q) Kolejne kroki 1 + * 1 + * 1 + * - 1 * 1 + 2 * * 1 + * 1 + * - 1 * Q Q1 1 + 2 * -2 + 1 * -1 + 1 * - 1 * ABC(P)<ABC(Q)
P Q2 Q Q1 Kolejne kroki 1 + * 1 + * 1 + * - 1 * 1 + * 1 + 2 * -2 + 1 * * 1 + * 1 + * - 1 * 1 + * Q2 Q Q1 1 + 2 * -2 + 1 * -1 + 1 * - 1 *
P ABC(P)==ABC(Q) Q2 Q1 Q Kolejne kroki 1 + * 1 + * 1 + * - 1 * * 1 + * 1 + * - 1 * ABC(P)==ABC(Q) Coeff(Q)=Coeff(Q)+Coeff(P) Q2 Q1 Q 1 + 2 * 1 + * -2 + 1 * -1 -1 + 1 * - 1 *
P Q2 Q1 Q ABC(P)<ABC(Q) Kolejne kroki 1 + * 1 + * 1 + * - 1 * 1 + 2 * 1 + * 1 + * - 1 * Q2 Q1 Q 1 + 2 * 1 + * -1 + 1 * -1 + 1 * - 1 * ABC(P)<ABC(Q)
P ABC(P)==ABC(Q) ? Q2 Q1 Q Kolejne kroki 1 + * 1 + * 1 + * - 1 * 1 + 2 * 1 + * 1 + * - 1 * ABC(P)==ABC(Q) ? Q2 Q1 Q 1 + 2 * 1 + * -1 + 1 * -1 + 1 * - 1 *