Általános leírás
Egy kétvégű sor adatszerkezetet készítünk, amelyben az elemek az elemek egy statikus tömbben lesznek tárolva. Fontos, hogy a sornak van egy maximális mérete, amennyi elemet be tud fogadni. A kétvégű sor úgy telik, hogy feltölthetjük a listát az elejéről és a végéről is. Amikor a lista végéről szedünk ki elemet, akkor persze az utolsó elemet töröljük. Amikor a lista elejéről veszünk ki egy elemet, akkor az elejét töröljük, és megjegyezzük, hogy honnan kezdődnek a maradék elemek. Így "kígyószerűen" előrekúszik a sor a tömb végéig. A végén, mikor a tömb végét már elérték az új elemek, akkor a tömb elején lévő már felszabadult helyeket kezdjük el feltölteni. És így tovább, a két sorvége-jelölő tehát körbe-körbe jár a tömbben.
- A sornak legyen egy olyan lekérdezhető (de át nem írható)tulajdonsága, hogy hány elemet tud maximálisan fogadni. Ezt a konstruktorban kérd be, és ekkora méretű statikus tömbbel dolgozz.
- Létezzen két privát változó arra, hogy hol a sor eleje és hol a sor vége.
- Készíts egy publikus Enqueue metódust, amely beletesz egy elemet a sorba, azaz a sor végét jelölő változóban tárolt helyre beír egy elemet a tömbre és a változót előre lépteti. Ha a tömb végére érne, akkor a tömb elejére (körbe)léptet.
- Legyen egy publikus Push metódus is, ami visszavezet az előbbi metódusra.
- Legyen egy publikus Pop metódus is, ami kivesz a sor végéről egy elemet és azt adja vissza.
- Készíts egy publikus Dequeue metódust, amely kiveszi a statikus tömbből a sor eleji elemet. A sor elejét mutató változót léptesse, ami ha a tömb végére kerülne, akkor (körbe)léptetődjön a tömb elejére.
- Készíts egy publikus PeekFront metódust, amely visszaadja a sor elején lévő elemet anélkül, hogy azt törölné.
- Készíts egy publikus PeekBack metódust, amely visszaadja a sor végén lévő elemet anélkül, hogy azt törölné.
- Készíts egy publikus Empty metódust, amely annak függvényében ad vissza igazat vagy hamisat, hogy üres-e a sor vagy sem.
- Legyen egy publikus Count tulajdonság, amely megadja, hány eleme van a sornak! Ez ne változóban legyen eltárolva, amit folyton frissítesz, hanem a soreleje és sorvége változók értékeiből számítódjon ki!
Úgy írd meg a programod, hogy mutassa be ezeket a metódusokat a felhasználónak!