FIUFOL
unknown
csharp
5 months ago
7.0 kB
8
Indexable
using System; //using System.Collections.Generic; //using System.Linq; //using System.Text; ///using System.Threading.Tasks; namespace AISD_Zadanie04 { class Program { //UDało mi się sprawić, że elementy dodaje na koniec listy a pobieram je z początku czyli FIFO wyszło // niestety nie udało mi sie zabezpieczyc przed próbą pobrania wartości gdy lista jest pusta static void Main(string[] args) { ElementKolejki Kolejka1; Kolejka1 = new ElementKolejki(11); Kolejka1.DopiszNaKoncu(22); Kolejka1.DopiszNaKoncu(33); Kolejka1.DopiszNaKoncu(44); Console.WriteLine("Zawartość kolejki nr 1 to:"); Console.WriteLine(Kolejka1.WypiszZawartoscKolejki()); Console.WriteLine("Głowa ma wartsc:"); Console.WriteLine(Kolejka1.ZobaczCoNaPoczatku().ToString()); Console.WriteLine("Znow podgladam glowe"); Console.WriteLine(Kolejka1.ZobaczCoNaPoczatku().ToString()); Console.WriteLine("I jeszcze znow podgladam glowe"); Console.WriteLine(Kolejka1.ZobaczCoNaPoczatku().ToString()); Console.WriteLine("---------------------------------------------"); KolejkaFIFO Kolejka2; Kolejka2 = new KolejkaFIFO(); Kolejka2.Dopisz(111); Kolejka2.Dopisz(222); Kolejka2.Dopisz(333); Console.WriteLine("Wypisuje zawartosc kolejki nr 2"); Console.WriteLine(Kolejka2.WypiszZawartosc()); Console.WriteLine("Pobieram pierwszy element z kolejki nr 2"); Console.WriteLine(Kolejka2.Pobierz()); Console.WriteLine("Wypisuje zawartosc kolejki nr 2 po pobraniu pierszego elementu:"); Console.WriteLine(Kolejka2.WypiszZawartosc()); Console.WriteLine("Pobieram drugi element z kolejki nr 2"); Console.WriteLine(Kolejka2.Pobierz()); Console.WriteLine("Wypisuje zawartosc kolejki nr 2 po pobraniu drugi raz:"); Console.WriteLine(Kolejka2.WypiszZawartosc()); Console.WriteLine("Pobieram trzeci element z kolejki nr 2"); Console.WriteLine(Kolejka2.Pobierz()); Console.WriteLine("Wypisuje zawartosc kolejki nr 2 po pobraniu po raz trzeci"); Console.WriteLine(Kolejka2.WypiszZawartosc()); //Console.WriteLine("Pobieram element z kolejki kiedy jest pusta"); //Console.WriteLine(Kolejka2.Pobierz()); //Nie zabezpieczylem przed pobraniem z pustej kolejki Console.WriteLine("---------------------------------------------"); KolejkaFIFO Kolejka3; Kolejka3 = new KolejkaFIFO(); Kolejka3.Dopisz(1111); Kolejka3.Dopisz(2222); Kolejka3.Dopisz(3333); Kolejka3.Dopisz(4444); Kolejka3.Dopisz(5555); Kolejka3.Dopisz(4444); Kolejka3.Dopisz(2222); Kolejka3.Dopisz(2222); Kolejka3.Dopisz(3333); Console.WriteLine("Wypisuje zawartosc kolejki nr 3"); Console.WriteLine(Kolejka3.WypiszZawartosc()); Console.WriteLine("---------------------------------------------"); Console.WriteLine("Usuwam kolejke nr 3"); Kolejka3.UsunKolejke(); Console.WriteLine("Proboje wypisac zawarotsc kolejki nr 3"); Console.WriteLine(Kolejka3.WypiszZawartosc()); Console.ReadKey(); } } class KolejkaFIFO { ElementKolejki glowa; public KolejkaFIFO() { glowa = null; } public void Dopisz(int x) { ElementKolejki nowy; nowy = new ElementKolejki(x); if (glowa == null) { glowa = nowy; } else { glowa.DopiszNaKoncu(x); } } public Boolean IsEmpty() { Boolean wynik = false; if (glowa == null) { wynik = true; } return wynik; } public int Pobierz() { int wartosc; ElementKolejki referencja; //if (!IsEmpty()) //{ wartosc = glowa.PobierzWartosc();//pobieram wartość pierwszego elementu referencja = glowa.GetNastepny();//pobieram wskaznik czy tam uchwyt na drugi element glowa = referencja; //sprawiam ze glowa wskazuje na drugi element //} return wartosc; //zwracam wartosc spod niegdysiejszego pierwszego elementu } public string WypiszZawartosc() { string Zawartosc; Zawartosc = "Kolejka jest pusta"; if (!IsEmpty()) { Zawartosc = glowa.WypiszZawartoscKolejki(); } return Zawartosc; } public void UsunKolejke() { if (!IsEmpty()) { glowa.Usun(); //Console.WriteLine(glowa.WypiszZawartoscKolejki()); //Console.WriteLine("Usuwam glowe"); glowa = null; } } } class ElementKolejki { private int Value; private ElementKolejki Nastepny; public ElementKolejki(int x) { Value = x; Nastepny = null; } public int PobierzWartosc() { return Value; } public void DopiszNaKoncu(int x) { if (Nastepny == null) { Nastepny = new ElementKolejki(x); } else { Nastepny.DopiszNaKoncu(x); } } public int ZobaczCoNaPoczatku() { int Wartosc; Wartosc = Value; return Wartosc; } public string WypiszZawartoscKolejki() { string Zawartosc; Zawartosc = Value.ToString(); if (Nastepny == null) { //Console.WriteLine("Trafilem na null"); } else { //Console.WriteLine(Zawartosc); //Console.WriteLine("Nie trafilem na null ide dalej"); Zawartosc = Zawartosc + " ," + Nastepny.WypiszZawartoscKolejki(); } return Zawartosc; } public ElementKolejki GetNastepny() { ElementKolejki refer; refer = Nastepny; return refer; } public void Usun() { if (Nastepny != null) { Nastepny.Usun(); Nastepny = null; //Console.WriteLine("Usunalem jeden element"); } } } }
Editor is loading...
Leave a Comment