Stos, getNext() dla String

Stos, getNext() dla String
A7
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 46
0

Mam zrobic Interfejs Stos:
Empty() – zwraca true, jeśli stos jest pusty,
Push() – umieszcza znak na szczycie stosu i zwraca referencje do niego,
Pop() – zwraca znak ze szczytu stosu i usuwa go ze stosu,
Peek() – zwraca znak ze szczytu stosu bez jego zdejmowania.
Klasa Stos - implementacja stosu jako listy wiązanej jednokierunkowej.

Zrobiłem coś takiego http://pastebin.com/BWub9EYL . I mam problem z przeskoczeniem do nastepnego elementu stosu podczas implementacji. Jak mogę to rozwiązać i mógłby ktoś od razu spojrzeć czy to jest poprawnie napisane i metody zwracają to co mają ?

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
2

Zacznij od napisania zwykłej klasy opakowującej listę jednokierunkową, ponieważ wydaje mi się, że coś gdzieś zasłyszałeś, coś gdzieś przeczytałeś, ale tak w sumie to nie masz pojęcia, jak działa taka lista.

A7
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 46
0

dzięki za dobrą radę ;) Mógłbyś powiedzieć jeszcze czy to jest dobrze zrobione, zgodne z poleceniem. Napisałem liste tak jak mówiłeś i według niej zrobiłem stos. http://pastebin.com/0MAHfyTY

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
2
  1. Początek listy to Lista.head, a nie Lista.first. U Ciebie to będzie Lista.tail akurat, bo widzę, że zapisujesz ogon (koniec) listy, a nie początek.
  2. Dlaczego masz metodę Lista.addFirst? Jaki ma to w ogóle sens? Nie dodajesz tam przecież pierwszego elementu, więc nazwa jest ogromnie myląca. Lista.add wystarczy.
  3. Podobnie jak nie Lista.removeFirst, tylko Lista.removeLast (ponieważ usuwasz ostatnio dodany element, a nie pierwszy).
  4. Nie żadne Lista.firstElem, tylko Lista.getLast.
  5. Lista.displayList -> Lista.print.
  6. Zauważyłeś, że Twoja klasa Stos tak naprawdę nic nie robi? Jest tylko wrapperem na listę, ale sama w sobie nie ma żadnej funkcjonalności, ergo - jest zbędna.

Plus stosuj się do C#owego nazewnictwa, tj. SomeMethod, a nie someMethod.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.