Jak zaimplentować stos przy pomocy kontenera list?

0

" Napisać program, który będzie implementował stos przy pomocy kontenera list. Wszczególności chodzi o umożliwienie wykonywanie takich operacji jak umieszczanieelementu na stosie, zdejmowanie elementu ze stosu, wyświetlanie zawartości stosu, przyużyciu prostego menu ".

source: https://achilles.tu.kielce.pl/portal/Members/596d88a5187b42e2bad090bb66227a25/pub/pjc2/lab-2.pdf

Cześć. Właśnie uczę się na temat kontenerów i znalazłem takie zadanie. Nie rozumiem pierwszego zdania? Mógłby mi ktoś powiedzieć o co chodzi? Nie wiem, czy dobrze rozumiem.

0

A co rozumiesz? Napisz to powiemy czy dobrze.

0

Ja rozumiem to tak:
Napisać program, który będzie dodawał elementy do listy. Czyli stworzyć klasę z 3 metodami:

  1. umiesc_element_na_stosie(){ //dodaje do listy element}
  2. zdejmij_element_ze_stosu(){zwraca ostatni element z listy}
  3. zwroc_zawartosc_stosu(){//wyswietlic wszystkie elementy z listy od ostatniego do pierwszego ~ opróżnienie stosu... }

Czyli korzystając jedynie z listy stworzyć zachowanie stosu?

0

Generalnie myślisz w dobrym kierunku, ale zauważ, że "zwracanie" masz w dwóch różnych podpunktach. Dlaczego czasownik, którego używasz do określenia działania funkcji nie jest użyty w jej nazwie? Dodatkowo, ja zrozumiałem, że masz umożliwić również wyświetlenie zawartości całego stosu (listy), ale to kwestia interpretacji.

2

Musisz zaimplementować tzw. ADT (Abstract Data Type), chociaż ja wolę nazwę Algebraic Data Type, bo tym w istocie jest, czyli klasę, której wewnętrznym elementem jest lista, a klasa będzie interfejsem stosu - zgaduję, że Masz na myśli last in first out. Metody:

  • void push(T e) - dodaje element na stos;
  • T pop() - zdejmuje element ze stosu i go zwraca;
  • bool isEmpty() - czy pusty.
    Możesz też dodać inne, ale te muszą być i muszą mieć jak najmniejszą złożoność, w tym wypadku O(1).

1 użytkowników online, w tym zalogowanych: 0, gości: 1