Házi feladat

Szekvenciális sor adatszerkezet

Általános leírás

Egy 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 sor úgy telik, hogy elkezdjük feltölteni a listát az elejéről. Amikor kiveszünk a listából egy elemet, akkor az elejét töröljük, és megjegyezzük, hogy honnan kezdődnek az elemet. Í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.

  1. 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.
  2. Létezzen két privát változó arra, hogy hol a sor eleje és hol a sor vége.
  3. 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.
  4. 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.
  5. Készíts egy publikus Peek metódust, amely visszaadja a sor elején lévő elemet.
  6. 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.
  7. Legyen egy publikus Count tulajdonság, amely megadja, hány eleme van a sornak! Ez ne változóban legyen eltárolva, 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!