0Pricing
C Academy · Lektion

Stapel und Warteschlangen

Verstehen Sie die Datenstrukturen Stapel (LIFO) und Warteschlange (FIFO) sowie ihre Anwendungen.

Stapel und Warteschlangen ist eine kostenlose C Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 3. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des C Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der C Academy-Kurs umfasst insgesamt 3 Lektionen.

Stacks und Queues in C

Stacks und Queues in C

Stacks und Queues sind lineare Datenstrukturen zum Speichern und Verwalten von Daten.

In dieser Lektion lernen Sie:

  • Wie Stacks funktionieren (LIFO – zuletzt hinein, zuerst heraus).
  • Wie Queues funktionieren (FIFO – zuerst hinein, zuerst heraus).
  • Wie Sie Stacks und Queues in C implementieren.
Stapel und Warteschlangen — Illustration 1

Was ist ein Stack?

Was ist ein Stack?

Ein Stack folgt dem Prinzip Last In, First Out (LIFO).

Operationen:

  • Push - Fügt ein Element oben hinzu.
  • Pop - Entfernt das oberste Element.
  • Peek - Zeigt das oberste Element an, ohne es zu entfernen.

Beispiel: Einen Stack implementieren

Beispiel: Einen Stack implementieren

Dieses Programm zeigt Stack-Operationen mithilfe eines Arrays.

#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;
}

Was ist eine Queue?

Was ist eine Queue?

Eine Queue folgt dem Prinzip First In, First Out (FIFO).

Operationen:

  • Enqueue - Fügt ein Element am Ende hinzu.
  • Dequeue - Entfernt ein Element am Anfang.
  • Peek - Zeigt das vorderste Element an, ohne es zu entfernen.

Beispiel: Eine Queue implementieren

Beispiel: Eine Queue implementieren

Dieses Programm zeigt Queue-Operationen mithilfe eines Arrays.

#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;
}

Ringpuffer-Queue

Ringpuffer-Queue

Eine Ringpuffer-Queue überwindet die Einschränkungen einer normalen Queue, indem sie leere Speicherplätze wiederverwendet.

Die Operationen bleiben gleich, laufen aber im Array am Ende wieder zum Anfang zurück.

Beispiel: Ringpuffer-Queue

Beispiel: Ringpuffer-Queue

Dieses Programm zeigt die Implementierung einer Ringpuffer-Queue.

#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;
}

Anwendungen von Stacks und Queues

Anwendungen von Stacks und Queues

Stacks werden verwendet für:

  • Die Verwaltung von Funktionsaufrufen (Rekursion).
  • Rückgängig- und Wiederholen-Operationen.
  • Die Auswertung von Ausdrücken.

Queues werden verwendet für:

  • Die Planung von Aufgaben in Betriebssystemen.
  • Die Verwaltung von Anfragen in Webservern.
  • Die Datenübertragung in Netzwerken.

Zusammenfassung

Zusammenfassung

In dieser Lektion haben Sie Folgendes gelernt:

  • Wie Stacks und Queues funktionieren.
  • Wie Sie Stack- und Queue-Operationen implementieren.
  • Welche Anwendungen Stacks und Queues haben.

Als Nächstes sehen wir uns Bäume und Graphen in C an.

Stapel und Warteschlangen — Illustration 10

Häufig gestellte Fragen

Ist die Lektion „Stapel und Warteschlangen“ kostenlos?

Ja — der vollständige Text von „Stapel und Warteschlangen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des C Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der C Academy-Kurs umfasst insgesamt 3 Lektionen.

Was lerne ich in „Stapel und Warteschlangen“?

Verstehen Sie die Datenstrukturen Stapel (LIFO) und Warteschlange (FIFO) sowie ihre Anwendungen. Du übst C Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um C Academy zu starten?

Keine Vorkenntnisse erforderlich. C Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 3.

Wie lange dauert die Lektion „Stapel und Warteschlangen“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser C Academy-Lektion Code schreiben und ausführen?

Ja. Jede C Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Verkettete Listen
  2. Stapel und Warteschlangen
  3. Bäume und Graphen
← Zurück zu C Academy