Polecenie 1

Zapoznaj się z prezentacją przedstawiającą użycie stosu zaimplementowanego za pomocą listy jednokierunkowej niecyklicznej w realizacji algorytmu konwersji zapisu infiksowego na odwrotną notację polskąD8zD8PhYJodwrotną notację polską. Algorytm zapisany w pseudokodzie znajdziesz w e‑materiale Dynamiczne struktury danychDINsybcX5Dynamiczne struktury danych.

Specyfikacja problemu:

Dane:

  • wyrazenie – łańcuch znaków; zapis infiksowy wyrażenia arytmetycznego, w którym znak spacji występuje przed i po każdym operatorze

Wynik:

  • wyrażenie infiksowe wypisane w odwrotnej notacji polskiej

R13p9hcdavFI61
a
1
Polecenie 2

Na podstawie informacji z sekcji „Przeczytaj” oraz powyższej prezentacji napisz i uruchom program konwertujący podane wyrażenie infiksowe na postfiksowe. W implementacji do zdefiniowania węzłów listy użyj klasy Wezel zamiast struktury. W metodzie czyOperator() wykorzystaj metodę find() obiektu string.

Specyfikacja problemu:

Dane:

  • wyrazenie – łańcuch znaków; zapis infiksowy wyrażenia arytmetycznego, w którym znak spacji występuje przed i po każdym operatorze

Wynik:

  • wyrażenie infiksowe wypisane w odwrotnej notacji polskiej.

Działanie programu przetestuj dla następującego wyrażenia: (31 + 4) * 7.

Przykładowy wynik działania programu:

Linia 1. Wyrażenie infiksowe dwukropek 7 asterysk otwórz nawias okrągły 15 minus 5 zamknij nawias okrągły. Linia 2. Wyrażenie postfiksowe dwukropek 7 15 5 minus asterysk.
RnlE3UUWdnzGZ
Polecenie 3

Zapoznaj się z prezentacją przedstawiającą użycie jednokierunkowej listy cyklicznej w symulacji problemu Flawiusza. Algorytm zapisany w pseudokodzie znajdziesz w e‑materiale Dynamiczne struktury danychDINsybcX5Dynamiczne struktury danych.

Specyfikacja problemu:

Dane:

  • n – liczba naturalna; liczba elementów kręgu

  • k – liczba naturalna; liczba oznaczająca pierwszy eliminowany element oraz liczbę przejść do następnego eliminowanego elementu

Wynik:

  • wypisany numer elementu, który pozostał w kręgu

RGtd7JexkLhGp1
a
21
Polecenie 4

Przyjmijmy, że do symulacji problemu Flawiusza używamy dwukierunkowej listy cyklicznej o znanym rozmiarze n. Zaimplementuj metody dodaj(), usun() oraz wypisz() uwzględniające dwukierunkowość listy. Po uruchomieniu program powinien wypisywać zawartość listy przed każdym usunięciem węzła, a na końcu pozycję węzła, który pozostał na liście.

Specyfikacja problemu:

Dane:

  • – liczba naturalna; rozmiar listy cyklicznej

  • k – liczba naturalna; liczba oznaczająca pierwszy eliminowany element oraz liczbę przejść do następnego eliminowanego elementu

Wynik:

  • zawartość listy przed każdym usunięciem węzła oraz pozycja węzła, który pozostał na liście

Działanie programu przetestuj dla n = 8k = 3.

Przykładowy wynik działania programu:

Linia 1. 1 2 3 4 5 6 7 8. Linia 2. 1 2 4 5 6 7 8. Linia 3. 1 2 4 5 7 8. Linia 4. 2 4 5 7 8. Linia 5. 2 4 7 8. Linia 6. 4 7 8. Linia 7. 4 7. Linia 8. 7.
R1JDbF289Bbls
Polecenie 5

Zapoznaj się z prezentacją przedstawiającą użycie niecyklicznej listy dwukierunkowej w algorytmie leksykograficznego sortowania wyrazów. Algorytm zapisany w pseudokodzie znajdziesz w e‑materiale Dynamiczne struktury danychDINsybcX5Dynamiczne struktury danych.

Specyfikacja problemu:

Dane:

  • wyrazy – tablica lub lista zawierająca ciągi znaków – wyrazy do uporządkowania

Wynik:

  • wypisane w porządku leksykograficznym wyrazy

R14RVWMBYUYki1
e
1
Polecenie 6

Metoda wstaw() zaimplementowana w prezentacji dotyczącej sortowania leksykograficznego wykonuje w pętli while jedno porównanie, które wcześniej wykonywane jest w metodzie sortuj().

Zaimplementuj taką wersję tej metody, która nie wykona zbędnego porównania.

Specyfikacja problemu:

Dane:

  • wyrazy – tablica lub lista zawierająca ciągi znaków – wyrazy do uporządkowania

Wynik:

  • wyrazy wypisane przed posortowaniem i po sortowaniu w porządku leksykograficznym

Działanie programu przetestuj dla wyrazów: "dynamiczne", "Struktury", "danych", "cpp".

Przykładowy wynik działania programu:

Linia 1. dynamiczne Struktury danych cpp. Linia 2. cpp danych dynamiczne Struktury.
R16NvNhyBvgET