Temat 3 Flashcards

Temat 3: Kolejki, stosy

1
Q

Czym jest kolejka? Jakie mamy rodzaje kolejek?

A

Kolejka do abstrakcyjna struktura danych, w której dodawanie i usuwanie jest ze sobą powiązane.

Rodzaje:
- FIFO (First-In First-Out)
- LIFO (Last-In First-Out)
- Dwukierunkowa (Deque) - dodawanie i usuwanie na obu końcach
- Cykliczna
- Priorytetowa

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Na jakich strukturach możemy zaimplementować kolejkę?

A

Listy wiązane, tablica dynamiczna, grafy/drzewa

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Czym różni się stos od typowej kolejki?

A

Stos jest to implementacja kolejki LIFO, gdzie elementy dodawane są na szczyt i ze szczytu są usuwane.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Dlaczego implementacja kolejki priorytetowej na liście wiązanej jest naiwna?

A

Implementacja kolejki priorytetowej musi mieć wydajną metodę extract_max/min, a żeby to osiągnąć, musi wydajnie przeszukiwać kolejkę w poszukiwaniu elementu.
Przeszukiwanie listy w poszukiwaniu wartości jest naiwne na czas złożoności obliczeniowej, która w najgorszym przypadku wynosi O(n), czyli musimy przejść przez całą listę, aby znaleźć nasz element.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Złożoność operacji dla kolejki w zależności od implementacji: lista wiązana, tablica dynamiczna

A

ENQUEUE: Lista wiązana=O(1) | Tablica dynamiczna=O(1) A
DEQUEUE: Lista wiązana=O(1) | Tablica dynamiczna=O(1) A
ISEMPTY: Lista wiązana=O(1) | Tablica dynamiczna=O(1)
PEEK: Lista wiązana=O(1) | Tablica dynamiczna=O(1)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly