FIUFOL
unknown
csharp
10 months ago
7.0 kB
22
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