Polecenie 1

Zapoznaj się z prezentacją przedstawiającą użycie stosu zaimplementowanego przy użyciu listy jednokierunkowej niecyklicznej w realizacji algorytmu konwersji zapisu infiksowego na odwrotną notację polskąD8zD8PhYJodwrotną notację polską. Algorytm zapisany w pseudokodzie znajdziesz w multimedium materiału 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

ReOuOtTJWFy5S1
3
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY 3.0.
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 programie użyj stosu zaimplementowanego za pomocą omówionej w sekcji „Przeczytaj” klasy deque z modułu collections, a także funkcji czy_operator() oraz priorytet() wykorzystujących operator in.

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

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.

Przykładowy wynik działania programu:

Linia 1. Wyrażenie infiksowe dwukropek otwórz nawias okrągły 31 plus 4 zamknij nawias okrągły asterysk 7. Linia 2. Wyrażenie postfiksowe dwukropek 31 4 plus 7 asterysk.
R1A9kmLl87dM9
Polecenie 3

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

Specyfikacja problemu:

Dane:

  • n – liczba całkowita; liczba elementów kręgu

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

Wynik:

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

RM35JzKivKflU1
5
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY 3.0.
1
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.

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

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

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.
R1HVhjYLRgQ5f1
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 multimedium materiału Dynamiczne struktury danychDINsybcX5Dynamiczne struktury danych.

Specyfikacja problemu:

Dane:

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

Wynik:

  • wypisane w porządku leksykograficznym wyrazy

R5KUbv9cJaGbm1
5
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.
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.

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

Specyfikacja problemu:

Dane:

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

Wynik:

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

Przykładowy wynik działania programu:

Linia 1. dynamiczne Struktury danych Python. Linia 2. danych dynamiczne Python Struktury.
R1bwubhT9Kxlt