static void Main(string[] args) { int[] arr1 = { 1, 2, 5, 0, 0, 8 }; int[] arr2 = { 3, 0, 4, 6, 0, 0, 10 }; int[] arr3 = { 4, 0, 5, 6, 3, 4 }; ListaJednokierunkowa wielomian1 = ListaJednokierunkowa.CreateFromArray(arr1); ListaJednokierunkowa wielomian2 = ListaJednokierunkowa.CreateFromArray(arr2); ListaJednokierunkowa wielomian3 = ListaJednokierunkowa.CreateFromArray(arr3); wielomian1.Show(); Console.WriteLine(); wielomian2.Show(); Console.WriteLine(); wielomian1.Dodaj(wielomian2); wielomian1.Show(); wielomian1.Odejmij(wielomian3); wielomian1.Show(); Console.WriteLine(); Console.Write("Przed rozniczka:"); wielomian2.Show(); Console.Write("Po rozniczkowaniu:"); wielomian2.Rozniczkoj(); wielomian2.Show(); Console.ReadKey(); }
// FuNKCJA STATYCZNA - tworzy wielomian z tablicy public static ListaJednokierunkowa CreateFromArray(int[] data) { ListaJednokierunkowa result = new ListaJednokierunkowa(); for (int wykladnik = 0; wykladnik < data.Length; wykladnik++) { int wspolczynnik = data[wykladnik]; if (wspolczynnik == 0) { continue; } result.AddFront(data[wykladnik], wykladnik); } return(result); }
// Odejmuje od wielomianu drugi wielomian public void Odejmij(ListaJednokierunkowa w2) { // przechodzimy po this.head for (Node temp = w2.head; temp != null; temp = temp.next) { if (this.DejMnieWspolczynnik(temp.wykladnik) != 0) // odejmowanie { this.DodajDoWspolczynnika(temp.wykladnik, temp.wspolczynnik * -1); //tricky mnożenie * -1 } else // dodawanie nowego { this.DodajNowyWykladnik(temp.wykladnik, temp.wspolczynnik * -1); } } }
// Dodaje do wielomianu drugi wielomian public void Dodaj(ListaJednokierunkowa w2) { // przechodzimy po w2 for (Node temp = w2.head; temp != null; temp = temp.next) { if (this.DejMnieWspolczynnik(temp.wykladnik) != 0) // sumowanie { this.DodajDoWspolczynnika(temp.wykladnik, temp.wspolczynnik); } else // dodawanie nowego { this.DodajNowyWykladnik(temp.wykladnik, temp.wspolczynnik); } } }