Á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.)
- Készíts egy publikus Push metódust, amely beletesz egy elemet a kalapba
- Készíts egy publikus Pop metódust, amely kivesz egy elemet a kalapból, és visszaadja azt.
- Készíts egy publikus Peek metódust, amely nem vesz ki elemet a kalapból, de visszaad belőle egy értéket.
- 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.
- 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!