Házi feladat

"Kalap" adatszerkezet

Általános leírás

Egy olyan adatszerkezetet készítünk, amelybe elemeket lehet egyenként elhelyezni, majd egyenként lehet belőle elemeket kivenni. A lényege ennek az lesz, hogy mindig legyen véletlenszerű az elemek kivétele. Fontos lesz továbbá, hogy mindegyik benne lévő elemet ugyanakkora valószínűséggel lehessen kiválasztani. Az, hogy mivel oldod meg a véletlenszerűséget (pl. véletlenszerű az elemek elhelyezése vagy véletlenszerű az elemek kivétele, rád lesz bízva.)

  1. Készíts egy publikus Push metódust, amely beletesz egy elemet a kalapba
  2. Készíts egy publikus Pop metódust, amely kivesz egy elemet a kalapból, és visszaadja azt.
  3. Készíts egy publikus Peek metódust, amely nem vesz ki elemet a kalapból, de visszaad belőle egy értéket.
  4. Készíts egy publikus Empty metódust, amely annak függvényében ad vissza igazat vagy hamisat, hogy üres-e a kalap vagy sem.
  5. Legyen egy publikus Count tulajdonság, amely megadja, hány eleme van a kalapnak!

Úgy írd meg a programod, hogy mutassa be ezeket a metódusokat a felhasználónak!