ishouldsleep

This commit is contained in:
Lendaia Mirai
2025-11-07 01:44:11 +01:00
parent 986f22194b
commit 50ab18831a
3 changed files with 385 additions and 358 deletions

View File

@@ -108,7 +108,14 @@ namespace OE.ALGA.Adatszerkezetek
} }
public T Elso() public T Elso()
{ {
return fej.tart; if (Ures)
{
throw new NincsElemKivetel();
}
else
{
return fej.tart;
}
} }
public void Sorba(T ertek) public void Sorba(T ertek)
@@ -243,16 +250,36 @@ namespace OE.ALGA.Adatszerkezetek
public void Torol(T ertek) public void Torol(T ertek)
{ {
LancElem<T> tmp = fej; if (Elemszam > 0)
while (tmp.kov != null)
{ {
if (ertek.Equals(tmp.tart)) if (ertek.Equals(fej.tart))
{ {
tmp.elozo.kov = tmp.kov; if (fej.kov == null)
tmp.kov.elozo = tmp.elozo; {
fej = null;
n--;
}
else
{
fej = fej.kov;
fej.elozo = null;
n--;
}
}
else
{
LancElem<T> tmp = fej;
while (tmp.kov != null)
{
if (ertek.Equals(tmp.tart))
{
tmp.elozo.kov = tmp.kov;
tmp.kov.elozo = tmp.elozo;
}
tmp = tmp.kov;
}
} }
tmp = tmp.kov;
} }
} }
private LancElem<T> Indexedik(int index) private LancElem<T> Indexedik(int index)

View File

@@ -71,7 +71,7 @@ namespace OE.ALGA.Optimalizalas
} }
public T OptimalisMegoldas() public T OptimalisMegoldas()
{ {
T legjobb = generator(0); T legjobb = generator(1);
for (int i = 1; i < m; i++) for (int i = 1; i < m; i++)
{ {
T tmp = generator(i); T tmp = generator(i);

View File

@@ -1,353 +1,353 @@
//using NUnit.Framework; using NUnit.Framework;
//using OE.ALGA.Adatszerkezetek; using OE.ALGA.Adatszerkezetek;
//namespace OE.ALGA.Tesztek.Adatszerkezetek namespace OE.ALGA.Tesztek.Adatszerkezetek
//{ {
// [TestFixture(Category = "Adatszerkezetek", TestName = "04 - Lancolt Lista Tesztek")] [TestFixture(Category = "Adatszerkezetek", TestName = "04 - Lancolt Lista Tesztek")]
// public class LancoltListaTesztek public class LancoltListaTesztek
// { {
// [TestCase] [TestCase]
// public void Elemszam() public void Elemszam()
// { {
// Lista<string> l = new LancoltLista<string>(); Lista<string> l = new LancoltLista<string>();
// Assert.That(l.Elemszam, Is.EqualTo(0)); Assert.That(l.Elemszam, Is.EqualTo(0));
// l.Hozzafuz("A"); l.Hozzafuz("A");
// Assert.That(l.Elemszam, Is.EqualTo(1)); Assert.That(l.Elemszam, Is.EqualTo(1));
// l.Hozzafuz("B"); l.Hozzafuz("B");
// Assert.That(l.Elemszam, Is.EqualTo(2)); Assert.That(l.Elemszam, Is.EqualTo(2));
// l.Torol("A"); l.Torol("A");
// Assert.That(l.Elemszam, Is.EqualTo(1)); Assert.That(l.Elemszam, Is.EqualTo(1));
// } }
// [TestCase] [TestCase]
// public void Bejaras() public void Bejaras()
// { {
// Lista<int> l = new LancoltLista<int>(); Lista<int> l = new LancoltLista<int>();
// l.Hozzafuz(1); l.Hozzafuz(1);
// l.Hozzafuz(3); l.Hozzafuz(3);
// l.Hozzafuz(2); l.Hozzafuz(2);
// string s = ""; string s = "";
// l.Bejar(x => { Guardian.Recursion.CheckStackTrace(); s += x.ToString(); }); l.Bejar(x => { Guardian.Recursion.CheckStackTrace(); s += x.ToString(); });
// Assert.That(s, Is.EqualTo("132")); Assert.That(s, Is.EqualTo("132"));
// } }
// [TestCase] [TestCase]
// public void Beszuras() public void Beszuras()
// { {
// Lista<int> l = new LancoltLista<int>(); Lista<int> l = new LancoltLista<int>();
// l.Beszur(0, 1); l.Beszur(0, 1);
// l.Beszur(0, 2); l.Beszur(0, 2);
// l.Beszur(1, 3); l.Beszur(1, 3);
// l.Beszur(3, 4); l.Beszur(3, 4);
// l.Beszur(2, 5); l.Beszur(2, 5);
// Assert.Multiple(() => Assert.Multiple(() =>
// { {
// Assert.That(l.Kiolvas(0), Is.EqualTo(2)); Assert.That(l.Kiolvas(0), Is.EqualTo(2));
// Assert.That(l.Kiolvas(1), Is.EqualTo(3)); Assert.That(l.Kiolvas(1), Is.EqualTo(3));
// Assert.That(l.Kiolvas(2), Is.EqualTo(5)); Assert.That(l.Kiolvas(2), Is.EqualTo(5));
// Assert.That(l.Kiolvas(3), Is.EqualTo(1)); Assert.That(l.Kiolvas(3), Is.EqualTo(1));
// Assert.That(l.Kiolvas(4), Is.EqualTo(4)); Assert.That(l.Kiolvas(4), Is.EqualTo(4));
// }); });
// } }
// [TestCase] [TestCase]
// public void BeszurasUres() public void BeszurasUres()
// { {
// Lista<string> l = new LancoltLista<string>(); Lista<string> l = new LancoltLista<string>();
// l.Beszur(0, "1"); l.Beszur(0, "1");
// l.Beszur(0, "2"); l.Beszur(0, "2");
// l.Beszur(1, ""); l.Beszur(1, "");
// l.Beszur(3, ""); l.Beszur(3, "");
// l.Beszur(2, "5"); l.Beszur(2, "5");
// Assert.Multiple(() => Assert.Multiple(() =>
// { {
// Assert.That(l.Kiolvas(0), Is.EqualTo("2")); Assert.That(l.Kiolvas(0), Is.EqualTo("2"));
// Assert.That(l.Kiolvas(1), Is.EqualTo("")); Assert.That(l.Kiolvas(1), Is.EqualTo(""));
// Assert.That(l.Kiolvas(2), Is.EqualTo("5")); Assert.That(l.Kiolvas(2), Is.EqualTo("5"));
// Assert.That(l.Kiolvas(3), Is.EqualTo("1")); Assert.That(l.Kiolvas(3), Is.EqualTo("1"));
// Assert.That(l.Kiolvas(4), Is.EqualTo("")); Assert.That(l.Kiolvas(4), Is.EqualTo(""));
// }); });
// } }
// [TestCase] [TestCase]
// public void HozzaFuzes() public void HozzaFuzes()
// { {
// Lista<int> l = new LancoltLista<int>(); Lista<int> l = new LancoltLista<int>();
// l.Hozzafuz(1); l.Hozzafuz(1);
// l.Hozzafuz(3); l.Hozzafuz(3);
// l.Hozzafuz(2); l.Hozzafuz(2);
// Assert.Multiple(() => Assert.Multiple(() =>
// { {
// Assert.That(l.Kiolvas(0), Is.EqualTo(1)); Assert.That(l.Kiolvas(0), Is.EqualTo(1));
// Assert.That(l.Kiolvas(1), Is.EqualTo(3)); Assert.That(l.Kiolvas(1), Is.EqualTo(3));
// Assert.That(l.Kiolvas(2), Is.EqualTo(2)); Assert.That(l.Kiolvas(2), Is.EqualTo(2));
// }); });
// } }
// [TestCase] [TestCase]
// public void HozzaFuzesUres() public void HozzaFuzesUres()
// { {
// Lista<string> l = new LancoltLista<string>(); Lista<string> l = new LancoltLista<string>();
// l.Hozzafuz("1"); l.Hozzafuz("1");
// l.Hozzafuz(""); l.Hozzafuz("");
// l.Hozzafuz(""); l.Hozzafuz("");
// l.Hozzafuz("1"); l.Hozzafuz("1");
// Assert.Multiple(() => Assert.Multiple(() =>
// { {
// Assert.That(l.Kiolvas(0), Is.EqualTo("1")); Assert.That(l.Kiolvas(0), Is.EqualTo("1"));
// Assert.That(l.Kiolvas(1), Is.EqualTo("")); Assert.That(l.Kiolvas(1), Is.EqualTo(""));
// Assert.That(l.Kiolvas(2), Is.EqualTo("")); Assert.That(l.Kiolvas(2), Is.EqualTo(""));
// Assert.That(l.Kiolvas(3), Is.EqualTo("1")); Assert.That(l.Kiolvas(3), Is.EqualTo("1"));
// }); });
// } }
// [TestCase] [TestCase]
// public void Novekedes() public void Novekedes()
// { {
// Lista<int> l = new LancoltLista<int>(); Lista<int> l = new LancoltLista<int>();
// for (int i = 0; i < 1000; i++) for (int i = 0; i < 1000; i++)
// l.Hozzafuz(i * i); l.Hozzafuz(i * i);
// Assert.That(l.Elemszam, Is.EqualTo(1000)); Assert.That(l.Elemszam, Is.EqualTo(1000));
// Assert.Multiple(() => Assert.Multiple(() =>
// { {
// for (int i = 0; i < 1000; i++) for (int i = 0; i < 1000; i++)
// Assert.That(l.Kiolvas(i), Is.EqualTo(i * i)); Assert.That(l.Kiolvas(i), Is.EqualTo(i * i));
// }); });
// Assert.That(l.Elemszam, Is.EqualTo(1000)); Assert.That(l.Elemszam, Is.EqualTo(1000));
// } }
// [TestCase] [TestCase]
// public void Torles() public void Torles()
// { {
// Lista<int> l = new LancoltLista<int>(); Lista<int> l = new LancoltLista<int>();
// l.Hozzafuz(1); l.Hozzafuz(1);
// l.Hozzafuz(3); l.Hozzafuz(3);
// l.Hozzafuz(2); l.Hozzafuz(2);
// l.Hozzafuz(3); l.Hozzafuz(3);
// l.Hozzafuz(4); l.Hozzafuz(4);
// Assert.That(l.Elemszam, Is.EqualTo(5)); Assert.That(l.Elemszam, Is.EqualTo(5));
// l.Torol(3); l.Torol(3);
// Assert.That(l.Elemszam, Is.EqualTo(3)); Assert.That(l.Elemszam, Is.EqualTo(3));
// Assert.Multiple(() => Assert.Multiple(() =>
// { {
// Assert.That(l.Kiolvas(0), Is.EqualTo(1)); Assert.That(l.Kiolvas(0), Is.EqualTo(1));
// Assert.That(l.Kiolvas(1), Is.EqualTo(2)); Assert.That(l.Kiolvas(1), Is.EqualTo(2));
// Assert.That(l.Kiolvas(2), Is.EqualTo(4)); Assert.That(l.Kiolvas(2), Is.EqualTo(4));
// }); });
// } }
// [TestCase] [TestCase]
// public void TorlesNincsElem() public void TorlesNincsElem()
// { {
// Lista<int> l = new LancoltLista<int>(); Lista<int> l = new LancoltLista<int>();
// Assert.That(l.Elemszam, Is.EqualTo(0)); Assert.That(l.Elemszam, Is.EqualTo(0));
// l.Torol(0); l.Torol(0);
// Assert.That(l.Elemszam, Is.EqualTo(0)); Assert.That(l.Elemszam, Is.EqualTo(0));
// } }
// [TestCase] [TestCase]
// public void TorlesUres() public void TorlesUres()
// { {
// Lista<string> l = new LancoltLista<string>(); Lista<string> l = new LancoltLista<string>();
// l.Hozzafuz("1"); l.Hozzafuz("1");
// l.Hozzafuz(""); l.Hozzafuz("");
// l.Hozzafuz(""); l.Hozzafuz("");
// l.Hozzafuz(""); l.Hozzafuz("");
// l.Hozzafuz("1"); l.Hozzafuz("1");
// Assert.That(l.Elemszam, Is.EqualTo(5)); Assert.That(l.Elemszam, Is.EqualTo(5));
// l.Torol(""); l.Torol("");
// Assert.That(l.Elemszam, Is.EqualTo(2)); Assert.That(l.Elemszam, Is.EqualTo(2));
// Assert.Multiple(() => Assert.Multiple(() =>
// { {
// Assert.That(l.Kiolvas(0), Is.EqualTo("1")); Assert.That(l.Kiolvas(0), Is.EqualTo("1"));
// Assert.That(l.Kiolvas(1), Is.EqualTo("1")); Assert.That(l.Kiolvas(1), Is.EqualTo("1"));
// }); });
// } }
// [TestCase] [TestCase]
// public void NemletezoTorles() public void NemletezoTorles()
// { {
// Lista<int> l = new LancoltLista<int>(); Lista<int> l = new LancoltLista<int>();
// l.Hozzafuz(1); l.Hozzafuz(1);
// l.Hozzafuz(2); l.Hozzafuz(2);
// l.Hozzafuz(3); l.Hozzafuz(3);
// Assert.That(l.Elemszam, Is.EqualTo(3)); Assert.That(l.Elemszam, Is.EqualTo(3));
// l.Torol(0); l.Torol(0);
// Assert.That(l.Elemszam, Is.EqualTo(3)); Assert.That(l.Elemszam, Is.EqualTo(3));
// Assert.Multiple(() => Assert.Multiple(() =>
// { {
// Assert.That(l.Kiolvas(0), Is.EqualTo(1)); Assert.That(l.Kiolvas(0), Is.EqualTo(1));
// Assert.That(l.Kiolvas(1), Is.EqualTo(2)); Assert.That(l.Kiolvas(1), Is.EqualTo(2));
// Assert.That(l.Kiolvas(2), Is.EqualTo(3)); Assert.That(l.Kiolvas(2), Is.EqualTo(3));
// }); });
// } }
// [TestCase] [TestCase]
// public void Modositas() public void Modositas()
// { {
// Lista<int> l = new LancoltLista<int>(); Lista<int> l = new LancoltLista<int>();
// l.Hozzafuz(1); l.Hozzafuz(1);
// l.Hozzafuz(3); l.Hozzafuz(3);
// l.Hozzafuz(2); l.Hozzafuz(2);
// l.Modosit(1, 5); l.Modosit(1, 5);
// l.Modosit(0, 4); l.Modosit(0, 4);
// Assert.Multiple(() => Assert.Multiple(() =>
// { {
// Assert.That(l.Kiolvas(0), Is.EqualTo(4)); Assert.That(l.Kiolvas(0), Is.EqualTo(4));
// Assert.That(l.Kiolvas(1), Is.EqualTo(5)); Assert.That(l.Kiolvas(1), Is.EqualTo(5));
// Assert.That(l.Kiolvas(2), Is.EqualTo(2)); Assert.That(l.Kiolvas(2), Is.EqualTo(2));
// }); });
// } }
// [TestCase] [TestCase]
// public void ForeachBejaras() public void ForeachBejaras()
// { {
// LancoltLista<string> l = new LancoltLista<string>(); LancoltLista<string> l = new LancoltLista<string>();
// l.Hozzafuz("a"); l.Hozzafuz("a");
// l.Hozzafuz("c"); l.Hozzafuz("c");
// l.Hozzafuz("d"); l.Hozzafuz("d");
// l.Hozzafuz("b"); l.Hozzafuz("b");
// string osszefuzo = ""; string osszefuzo = "";
// foreach (string x in l) foreach (string x in l)
// { {
// osszefuzo += x; osszefuzo += x;
// } }
// Assert.That(osszefuzo, Is.EqualTo("acdb")); Assert.That(osszefuzo, Is.EqualTo("acdb"));
// } }
// } }
// [TestFixture(Category = "Adatszerkezetek", TestName = "04 - Lancolt Sor Tesztek")] [TestFixture(Category = "Adatszerkezetek", TestName = "04 - Lancolt Sor Tesztek")]
// public class LancoltSorTesztek public class LancoltSorTesztek
// { {
// [TestCase] [TestCase]
// public void Ures() public void Ures()
// { {
// Sor<int> s = new LancoltSor<int>(); Sor<int> s = new LancoltSor<int>();
// Assert.That(s.Ures, Is.True); Assert.That(s.Ures, Is.True);
// Assert.Throws<NincsElemKivetel>(() => s.Elso()); Assert.Throws<NincsElemKivetel>(() => s.Elso());
// Assert.Throws<NincsElemKivetel>(() => s.Sorbol()); Assert.Throws<NincsElemKivetel>(() => s.Sorbol());
// s.Sorba(1); s.Sorba(1);
// Assert.That(s.Ures, Is.False); Assert.That(s.Ures, Is.False);
// s.Sorbol(); s.Sorbol();
// Assert.That(s.Ures, Is.True); Assert.That(s.Ures, Is.True);
// } }
// [TestCase] [TestCase]
// public void AlapMukodes() public void AlapMukodes()
// { {
// Sor<int> s = new LancoltSor<int>(); Sor<int> s = new LancoltSor<int>();
// s.Sorba(1); s.Sorba(1);
// s.Sorba(3); s.Sorba(3);
// s.Sorba(2); s.Sorba(2);
// Assert.Multiple(() => Assert.Multiple(() =>
// { {
// Assert.That(s.Sorbol(), Is.EqualTo(1)); Assert.That(s.Sorbol(), Is.EqualTo(1));
// Assert.That(s.Sorbol(), Is.EqualTo(3)); Assert.That(s.Sorbol(), Is.EqualTo(3));
// Assert.That(s.Sorbol(), Is.EqualTo(2)); Assert.That(s.Sorbol(), Is.EqualTo(2));
// }); });
// } }
// [TestCase] [TestCase]
// public void UresElem() public void UresElem()
// { {
// Sor<string> s = new LancoltSor<string>(); Sor<string> s = new LancoltSor<string>();
// s.Sorba(""); s.Sorba("");
// s.Sorba("1"); s.Sorba("1");
// s.Sorba(""); s.Sorba("");
// Assert.Multiple(() => Assert.Multiple(() =>
// { {
// Assert.That(s.Sorbol(), Is.EqualTo("")); Assert.That(s.Sorbol(), Is.EqualTo(""));
// Assert.That(s.Sorbol(), Is.EqualTo("1")); Assert.That(s.Sorbol(), Is.EqualTo("1"));
// Assert.That(s.Sorbol(), Is.EqualTo("")); Assert.That(s.Sorbol(), Is.EqualTo(""));
// }); });
// } }
// [TestCase] [TestCase]
// public void TulKevesElem() public void TulKevesElem()
// { {
// Sor<int> s = new LancoltSor<int>(); Sor<int> s = new LancoltSor<int>();
// s.Sorba(1); s.Sorba(1);
// s.Sorba(3); s.Sorba(3);
// s.Sorba(2); s.Sorba(2);
// s.Sorbol(); s.Sorbol();
// s.Sorbol(); s.Sorbol();
// s.Sorbol(); s.Sorbol();
// Assert.Throws<NincsElemKivetel>(() => s.Sorbol()); Assert.Throws<NincsElemKivetel>(() => s.Sorbol());
// } }
// [TestCase] [TestCase]
// public void Elso() public void Elso()
// { {
// Sor<int> s = new LancoltSor<int>(); Sor<int> s = new LancoltSor<int>();
// s.Sorba(1); s.Sorba(1);
// s.Sorba(3); s.Sorba(3);
// s.Sorba(2); s.Sorba(2);
// Assert.Multiple(() => Assert.Multiple(() =>
// { {
// Assert.That(s.Elso(), Is.EqualTo(1)); Assert.That(s.Elso(), Is.EqualTo(1));
// Assert.That(s.Elso(), Is.EqualTo(1)); Assert.That(s.Elso(), Is.EqualTo(1));
// }); });
// s.Sorbol(); s.Sorbol();
// Assert.That(s.Elso(), Is.EqualTo(3)); Assert.That(s.Elso(), Is.EqualTo(3));
// } }
// } }
// [TestFixture(Category = "Adatszerkezetek", TestName = "04 - Lancolt Verem Tesztek")] [TestFixture(Category = "Adatszerkezetek", TestName = "04 - Lancolt Verem Tesztek")]
// public class LancoltVeremTesztek public class LancoltVeremTesztek
// { {
// [TestCase] [TestCase]
// public void Ures() public void Ures()
// { {
// Verem<int> v = new LancoltVerem<int>(); Verem<int> v = new LancoltVerem<int>();
// Assert.That(v.Ures, Is.True); Assert.That(v.Ures, Is.True);
// Assert.Throws<NincsElemKivetel>(() => v.Felso()); Assert.Throws<NincsElemKivetel>(() => v.Felso());
// Assert.Throws<NincsElemKivetel>(() => v.Verembol()); Assert.Throws<NincsElemKivetel>(() => v.Verembol());
// v.Verembe(1); v.Verembe(1);
// Assert.That(v.Ures, Is.False); Assert.That(v.Ures, Is.False);
// v.Verembol(); v.Verembol();
// Assert.That(v.Ures, Is.True); Assert.That(v.Ures, Is.True);
// } }
// [TestCase] [TestCase]
// public void AlapMukodes() public void AlapMukodes()
// { {
// Verem<int> v = new LancoltVerem<int>(); Verem<int> v = new LancoltVerem<int>();
// v.Verembe(1); v.Verembe(1);
// v.Verembe(3); v.Verembe(3);
// v.Verembe(2); v.Verembe(2);
// Assert.That(v.Verembol(), Is.EqualTo(2)); Assert.That(v.Verembol(), Is.EqualTo(2));
// v.Verembe(4); v.Verembe(4);
// Assert.Multiple(() => Assert.Multiple(() =>
// { {
// Assert.That(v.Verembol(), Is.EqualTo(4)); Assert.That(v.Verembol(), Is.EqualTo(4));
// Assert.That(v.Verembol(), Is.EqualTo(3)); Assert.That(v.Verembol(), Is.EqualTo(3));
// Assert.That(v.Verembol(), Is.EqualTo(1)); Assert.That(v.Verembol(), Is.EqualTo(1));
// }); });
// } }
// [TestCase] [TestCase]
// public void UresElem() public void UresElem()
// { {
// Verem<string> v = new LancoltVerem<string>(); Verem<string> v = new LancoltVerem<string>();
// v.Verembe(""); v.Verembe("");
// v.Verembe("1"); v.Verembe("1");
// v.Verembe(""); v.Verembe("");
// Assert.Multiple(() => Assert.Multiple(() =>
// { {
// Assert.That(v.Verembol(), Is.EqualTo("")); Assert.That(v.Verembol(), Is.EqualTo(""));
// Assert.That(v.Verembol(), Is.EqualTo("1")); Assert.That(v.Verembol(), Is.EqualTo("1"));
// Assert.That(v.Verembol(), Is.EqualTo("")); Assert.That(v.Verembol(), Is.EqualTo(""));
// }); });
// } }
// [TestCase] [TestCase]
// public void TulKevesElem() public void TulKevesElem()
// { {
// Verem<int> v = new LancoltVerem<int>(); Verem<int> v = new LancoltVerem<int>();
// v.Verembe(1); v.Verembe(1);
// v.Verembe(3); v.Verembe(3);
// v.Verembe(2); v.Verembe(2);
// v.Verembol(); v.Verembol();
// v.Verembol(); v.Verembol();
// v.Verembol(); v.Verembol();
// Assert.Throws<NincsElemKivetel>(() => v.Verembol()); Assert.Throws<NincsElemKivetel>(() => v.Verembol());
// } }
// [TestCase] [TestCase]
// public void Felso() public void Felso()
// { {
// Verem<int> v = new LancoltVerem<int>(); Verem<int> v = new LancoltVerem<int>();
// v.Verembe(1); v.Verembe(1);
// v.Verembe(3); v.Verembe(3);
// v.Verembe(2); v.Verembe(2);
// Assert.Multiple(() => Assert.Multiple(() =>
// { {
// Assert.That(v.Felso(), Is.EqualTo(2)); Assert.That(v.Felso(), Is.EqualTo(2));
// Assert.That(v.Felso(), Is.EqualTo(2)); Assert.That(v.Felso(), Is.EqualTo(2));
// }); });
// v.Verembol(); v.Verembol();
// Assert.That(v.Felso(), Is.EqualTo(3)); Assert.That(v.Felso(), Is.EqualTo(3));
// } }
// } }
//} }