Stosy i kolejki
Proszę zrozumieć struktury danych stosu (LIFO) i kolejki (FIFO) oraz ich zastosowania.
Stosy i kolejki to bezpłatna lekcja C Academy na CoddyKit. To lekcja 2 z 3. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej C Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs C Academy zawiera 3 lekcji w sumie.
Stosy i kolejki w języku C
Stosy i kolejki to liniowe struktury danych używane do przechowywania danych i zarządzania nimi.
W tej lekcji dowiedzą się Państwo:
- Jak działają stosy (LIFO — ostatni wchodzi, pierwszy wychodzi).
- Jak działają kolejki (FIFO — pierwszy wchodzi, pierwszy wychodzi).
- Jak implementować stosy i kolejki w języku C.

Czym jest stos?
Stos działa zgodnie z zasadą ostatni wchodzi, pierwszy wychodzi (LIFO).
Operacje:
- Push - Dodaje element na wierzchołek stosu.
- Pop - Usuwa element ze szczytu stosu.
- Peek - Wyświetla element na szczycie bez usuwania go.
Przykład: implementowanie stosu
Ten program pokazuje operacje na stosie za pomocą tablicy.
#include <stdio.h>
#define MAX 5
int stack[MAX], top = -1;
void push(int value) {
if (top == MAX - 1) {
printf("Stack Overflow\n");
} else {
stack[++top] = value;
}
}
int pop() {
if (top == -1) {
printf("Stack Underflow\n");
return -1;
} else {
return stack[top--];
}
}
int main() {
push(10);
push(20);
printf("Popped: %d\n", pop());
return 0;
}Czym jest kolejka?
Kolejka działa zgodnie z zasadą pierwszy wchodzi, pierwszy wychodzi (FIFO).
Operacje:
- Enqueue - Dodaje element na końcu kolejki.
- Dequeue - Usuwa element z początku kolejki.
- Peek - Wyświetla pierwszy element bez usuwania go.
Przykład: implementowanie kolejki
Ten program pokazuje operacje na kolejce za pomocą tablicy.
#include <stdio.h>
#define MAX 5
int queue[MAX], front = -1, rear = -1;
void enqueue(int value) {
if (rear == MAX - 1) {
printf("Queue Overflow\n");
} else {
if (front == -1) front = 0;
queue[++rear] = value;
}
}
int dequeue() {
if (front == -1 || front > rear) {
printf("Queue Underflow\n");
return -1;
} else {
return queue[front++];
}
}
int main() {
enqueue(10);
enqueue(20);
printf("Dequeued: %d\n", dequeue());
return 0;
}Kolejka cykliczna
Kolejka cykliczna eliminuje ograniczenia zwykłej kolejki, ponownie wykorzystując wolne miejsce.
Operacje pozostają takie same, ale zawijają się na końcu tablicy i zaczynają ponownie od jej początku.
Przykład: kolejka cykliczna
Ten program pokazuje implementację kolejki cyklicznej.
#include <stdio.h>
#define MAX 5
int queue[MAX], front = -1, rear = -1;
void enqueue(int value) {
if ((rear + 1) % MAX == front) {
printf("Queue Overflow\n");
} else {
if (front == -1) front = 0;
rear = (rear + 1) % MAX;
queue[rear] = value;
}
}
int dequeue() {
if (front == -1) {
printf("Queue Underflow\n");
return -1;
}
int data = queue[front];
if (front == rear) {
front = rear = -1;
} else {
front = (front + 1) % MAX;
}
return data;
}
int main() {
enqueue(10);
enqueue(20);
printf("Dequeued: %d\n", dequeue());
return 0;
}Zastosowania stosów i kolejek
Stosy są używane do:
- Zarządzania wywołaniami funkcji (rekurencja).
- Obsługi operacji cofania i ponawiania.
- Obliczania wartości wyrażeń.
Kolejki są używane do:
- Planowania zadań w systemach operacyjnych.
- Zarządzania żądaniami na serwerach internetowych.
- Przesyłania danych w sieciach.
Podsumowanie
W tej lekcji poznali Państwo:
- Jak działają stosy i kolejki.
- Jak implementować operacje na stosach i kolejkach.
- Zastosowania stosów i kolejek.
W następnej części przyjrzymy się drzewom i grafom w języku C!

Ucz się C dzięki korepetycjom AI — za darmo
Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.
- Kursy
- 39
- Lekcje
- 144
Często zadawane pytania
Czy lekcja „Stosy i kolejki” jest bezpłatna?
Tak — pełny tekst „Stosy i kolejki” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu C Academy, przejdź na CoddyKit PRO. Kurs C Academy zawiera 3 lekcji w sumie.
Co nauczysz się w „Stosy i kolejki”?
Proszę zrozumieć struktury danych stosu (LIFO) i kolejki (FIFO) oraz ich zastosowania. Ćwiczysz C Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć C Academy?
Nie wymagamy żadnego doświadczenia. C Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 3.
Ile czasu zajmuje lekcja „Stosy i kolejki”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji C Academy?
Tak. Każda lekcja C Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Listy jednokierunkowe
- Stosy i kolejki
- Drzewa i grafy