1
Pokaż ćwiczenia:
RugjI9mMj6dO51
Ćwiczenie 1
Zaznacz, które operacje dla listy jednokierunkowej można wykonać w stałym czasie O(1)? Możliwe odpowiedzi: 1. Połaczenie dwóch list jednokierunkowych w jedną przy pomocy wskaźników na koniec i początek list., 2. Pobranie elementu według indeksu., 3. Wstawienie elementu na koniec bez użycia wskaźnika na ostatni węzeł na liście., 4. Wstawienie wyrazu na początek listy przy użyciu wskaźnika na pierwszy element listy.
R13hW2tp7iqRn
Ćwiczenie 2
1
Ćwiczenie 3

Zapisz w postaci pseudokodu funkcję zwróć_węzeł() przyjmującą jako argumenty listę jednokierunkową oraz indeks. Funkcja powinna zwracać węzeł o podanym indeksie lub w przypadku braku takiego węzła wartość pustą. Przyjmij, że indeksy oznaczają pozycję węzła w liście i zaczynają się od zera.

Specyfikacja problemu:

Dane:

  • lista – lista jednokierunkowa, składająca się z połączonych ze sobą węzłów

  • indeks – liczba naturalna reprezentująca pozycję węzła

Wynik:

  • węzeł znajdujący się pod danym indeksem albo wartość pusta, jeśli takiego węzła nie ma

R18qOs3gjzI49
Wybierz jedno nowe słowo poznane podczas dzisiejszej lekcji i ułóż z nim zdanie.
2
Ćwiczenie 4

Dana jest jednokierunkowa lista zawierająca elementy, w których wartościami są liczby całkowite oraz pole głowa wskazujące pierwszy element listy. Zapisz w postaci pseudokodu funkcję filtruj(), która przyjmuje jako argumenty listę oraz liczbę całkowitą i zwraca nową listę zawierającą wartości większe od liczby podanej jako argument.

Specyfikacja problemu:

Dane:

  • lista – jednokierunkowa lista zawierająca elementy, których wartościami są liczby całkowite

  • liczba – liczba całkowita

Wynik:

  • nowa – nowa lista zawierająca tylko te elementy z oryginalnej listy, których wartości są większe niż podana liczba całkowita

R1EqEfJcaKhE2
Wybierz jedno nowe słowo poznane podczas dzisiejszej lekcji i ułóż z nim zdanie.
2
Ćwiczenie 5

Mamy dwie jednokierunkowe niecykliczne listy lista1lista2, które są instancjami podanej niżej klasy Lista. Elementami listy są węzły tworzone na podstawie podanej niżej struktury. Listy mogą zawierać 0 lub więcej elementów. Zapisz w postaci pseudokodu funkcję połącz() przyjmującą jako argumenty dwie listy, która zwróci listę zawierającą wszystkie elementy otrzymanych list.

Specyfikacja problemu:

Dane:

  • lista1 – lista jednokierunkowa

  • lista2 – lista jednokierunkowa

Wynik:

  • dwie połączone ze sobą listy

Linia 1. typ WĘZEŁ. Linia 2. liczba. Linia 3. następny. Linia 5. klasa Lista. Linia 6. pola klasy dwukropek. Linia 7. głowa. Linia 9. metody publiczne klasy dwukropek. Linia 10. konstruktor Lista otwórz nawias okrągły zamknij nawias okrągły. Linia 11. głowa ← NIL.
R1Cw3JeEW2WeV
Wymyśl pytanie na kartkówkę związane z tematem materiału.
3
Ćwiczenie 6

Dana jest klasa Kolejka korzystająca z listy jednokierunkowej. Lista składa się z węzłów zawierających wskaźnik do następnego elementu oraz wartość w postaci liczby naturalnej dodatniej. Zapisz w postaci pseudokodu metody dodaj() oraz usuń() wykonujące operacje dodawania i usuwania elementów z kolejki. Metoda usuń() powinna zwracać liczbę zapisaną w usuwanym elemencie lub wartość 0, jeżeli kolejka jest pusta.

Specyfikacja problemu:

Dane:

  • liczba – liczba naturalna dodatnia

Wynik:

  • liczba zapisana w zwracanym elemencie lub wartość 0

Linia 1. typ WĘZEŁ. Linia 2. następny. Linia 3. liczba. Linia 5. klasa Kolejka. Linia 6. pola prywatne klasy dwukropek. Linia 7. głowa. Linia 8. ogon. Linia 10. metody publiczne klasy dwukropek. Linia 11. konstruktor Kolejka otwórz nawias okrągły zamknij nawias okrągły. Linia 12. głowa ← ogon ← NIL. Linia 13. dodaj otwórz nawias okrągły liczba zamknij nawias okrągły. Linia 14. usuń otwórz nawias okrągły zamknij nawias okrągły.
R1JplL3ySKPsD
Wybierz jedno nowe słowo poznane podczas dzisiejszej lekcji i ułóż z nim zdanie.
3
Ćwiczenie 7

Klasa Lista() definiuje listę jednokierunkową przechowującą węzły z wartościami w postaci liczb całkowitych. Metoda dodaj() pozwala na dodawanie elementów, a metoda usuń_głowa() usuwa i zwraca pierwszy element listy. Zapisz w postaci pseudokodu funkcję połącz(), która łączy dwie posortowane niemalejąco listy i zwraca jedną posortowaną listę. Zastanów się, czy wykorzystanie trzeciej listy zwiększa złożoność pamięciową operacji łączenia.

Specyfikacja problemu:

Dane:

  • lista1 – posortowana niemalejąco lista jednokierunkowa

  • lista2 – posortowana niemalejąco lista jednokierunkowa

Wynik:

  • lista3 – lista posortowana niemalejąco; lista powstała po połączeniu dwóch innych list

R1KShg28Im8D7
Wymyśl pytanie na kartkówkę związane z tematem materiału.
3
Ćwiczenie 8

Zapisz w postaci pseudokodu funkcję, która wypisze elementy listy jednokierunkowej w odwrotnej kolejności, tj. od ogona do głowy.

W rozwiązaniu wykorzystaj rekurencję.

Specyfikacja problemu:

Dane:

  • lista – lista jednokierunkowa, której elementy mają zostać wypisane

Wynik:

  • wypisane w odwrotnej kolejności elementy listy lista

Rg2vODKbEQ2wN
Wybierz jedno nowe słowo poznane podczas dzisiejszej lekcji i ułóż z nim zdanie.