Hvordan implementere en kø i C

Hvordan implementere en kø i C
En datastruktur i C er en metode for å organisere og lagre data i minnet. C -språk inkluderer mange iboende og definerte brukerdatastrukturer som kan brukes til å lagre og endre data på en rekke måter. En av de viktigste brukerdefinerte datastrukturene er Køer. Køer blir ofte brukt innen informatikk for aktiviteter som systempakkehåndtering og hendelseshåndtering.

Denne artikkelen vil diskutere alle aspekter av Køer og skygge implementeringen av Køer I C -programmering.

Hva er køer i C

De er en datastruktur med fleksibilitet hvis størrelse kan heves som svar på etterspørselen. Elementer av forskjellige datatyper kan lagres i . De gjøres ved hjelp av den første-første-ut-tilnærmingen. De Struktur for data er nyttig hvis du trenger å hente data i samme format som de ble lagret.

Grunnleggende køoperasjoner i C

Enqueue: Denne handlingen flytter et element fra endesiden av .

Dequeue: Operasjonen vil eliminere komponenten i begynnelsen av .

Front: Denne handlingen returnerer den første verdien i en uten å slette det.

Er tom: Denne operasjonen sjekker om er null eller ikke.

Bak: Pekerelementet fører tilsyn med å hente finalen element.

Køer implementering i C gjennom matriser

Implementering av Køer er veldig enkelt å bruke matriser for å lagre elementer. Det er to hovedpunkter i Køer; Den ene er bak pekeren som er nyttig å legge til elementer foran Køer Og den andre er front som er nyttig for å fjerne elementer fra . Begge pekerne er lik -1 når er null. Pekeren bak kan ikke gjøre en fremover når er full av elementene.

Følgende er en matrisebasert Datastruktur implementering i C -programmering.

#inkludere
int kø [100];
int foran, bak = -1;
int tom ()
return (front == -1 && bak == -1);

int full ()
Retur (bak == 100-1);

void enqueue (int verdi)
if (full ())
printf ("Frontkøen er full: feil oppstod \ n");
komme tilbake;

ellers hvis (tom ())
foran, bak = 0;

annet
bak ++;

kø [bak] = verdi;

void dequeue ()
if (tom ())
printf ("feil oppstår som køen er null \ n");
komme tilbake;

ellers hvis (foran == bak)
foran, bak = -1;

annet
front ++;


int front_element ()
if (tom ())
printf ("feil oppstår som køen er tom \ n");
return -1;

returkø [foran];

void print_queue ()
if (tom ())
printf ("køen er null \ n");

annet
printf ("elementer i køer er:");
for (int i = foran; i<= rear; i++)
printf ("%d", kø [i]);

printf ("\ n");


int main ()
enqueue (2);
enqueue (5);
enqueue (88);
enqueue (46);
enqueue (3);
utskriftskø();
printf ("Etter å ha ringt dequeue -funksjonen. \ n ");
dequeue ();
utskriftskø();
printf ("elementet som er til stede foran køen er: %d \ n", front_element ());
retur 0;

I implementeringen ovenfor, for å vise at køen er tom, begge deler bak og front Indeksene er satt til (-1). Henrettelsen starter fra hoved() funksjon hvor enqueue () funksjon setter inn en komponent i bak ved å øke bak indeks mens du setter Arrays verdi til det nyopprettede bak indeks til den medfølgende verdien. Ved å øke frontindeksen, Dequeue () metoden eliminerer komponenten som er i forkant av . De Front_element () metoden returnerer det som er lagret på foran, mens utskriftskø() Metode skriver ut komponenter.

Produksjon

Konklusjon

De er en datastruktur med et lineært arrangement som bruker FIFO -mønsteret, noe som betyr at elementet som ble lagt til Først blir trukket først. Det gir rask innsetting og sletting av gjenstander. Når det gjelder tildeling av minne, Køer er effektive. Artikkelen ovenfor har vist deg forskjellige operasjoner som kan utføres på Køer.