C Academy · Lektion

Stackar och köer

Förstå datastrukturerna stack (LIFO) och kö (FIFO) samt deras användningsområden.

Lektion 2 av 310 steg

Stackar och köer är en gratis lektion i C Academy på CoddyKit. Detta är lektion 2 av 3. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för C Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i C Academy innehåller totalt 3 lektioner.

Stackar och köer i C

Stackar och köer är linjära datastrukturer som används för att lagra och hantera data.

I den här lektionen får du lära dig:

  • Hur stackar fungerar (LIFO – sist in, först ut).
  • Hur köer fungerar (FIFO – först in, först ut).
  • Hur du implementerar stackar och köer i C.
Stackar och köer — illustration 1

Vad är en stack?

En stack följer principen sist in, först ut (LIFO).

Operationer:

  • Push - Lägger till ett element överst.
  • Pop - Tar bort det översta elementet.
  • Peek - Visar det översta elementet utan att ta bort det.

Exempel: Implementera en stack

Det här programmet visar stackoperationer med hjälp av en array.

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

Vad är en kö?

En kö följer principen först in, först ut (FIFO).

Operationer:

  • Enqueue - Lägger till ett element sist i kön.
  • Dequeue - Tar bort ett element först i kön.
  • Peek - Visar det första elementet utan att ta bort det.

Exempel: Implementera en kö

Det här programmet visar köoperationer med hjälp av en array.

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

Cirkulär kö

En cirkulär kö övervinner begränsningarna hos en vanlig kö genom att återanvända tomma platser.

Operationerna är desamma, men går runt i arrayen.

Exempel: Cirkulär kö

Det här programmet visar en implementation av en cirkulär kö.

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

Användningsområden för stackar och köer

Stackar används för:

  • Hantering av funktionsanrop (rekursion).
  • Ångra/gör om-operationer.
  • Utvärdering av uttryck.

Köer används för:

  • Schemaläggning av uppgifter i operativsystem.
  • Hantering av begäranden i webbservrar.
  • Dataöverföring i nätverk.

Sammanfattning

I den här lektionen har du lärt dig:

  • Hur stackar och köer fungerar.
  • Hur du implementerar stack- och köoperationer.
  • Vilka användningsområden stackar och köer har.

Härnäst ska vi utforska träd och grafer i C!

Stackar och köer — illustration 10
Gratis att börja

Lär dig C med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
39
Lektioner
144

Vanliga frågor

Är lektionen ”Stackar och köer” gratis?

Ja – hela texten till ”Stackar och köer” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i C Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i C Academy innehåller totalt 3 lektioner.

Vad lär jag mig i ”Stackar och köer”?

Förstå datastrukturerna stack (LIFO) och kö (FIFO) samt deras användningsområden. Ni övar på C Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig C Academy?

Du behöver inga förkunskaper. Utbildningen i C Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 3.

Hur lång tid tar lektionen ”Stackar och köer”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här C Academy-lektionen?

Ja. Varje C Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Länkade listor
  2. Stackar och köer
  3. Träd och grafer
← Tillbaka till C Academy