Datakonstruktioner og algoritmer C ++

Datakonstruktioner og algoritmer C ++ - betyder at arrangere eller organisere elementerne på en bestemt måde. Når vi siger, at vi skal arrangere elementer, kan disse elementer organiseres i forskellige former. For eksempel kan strømper arrangeres på forskellige forskellige måder. Du kan bare opbevare det i dit skab, alt sammen rodet. Eller du kan holde det pænt foldet. Den bedste måde kan være at folde og arrangere dem farvevis. Så for at søge i et bestemt par sokker, er det tredje arrangement perfekt.

På en lignende måde at organisere sokker kan data også organiseres på forskellige måder eller former. Disse forskellige måder at organisere data kaldes som datastruktur. Lad os se en formel definition af en datastruktur og grundlæggende om datastrukturer og algoritmer.

Datakonstruktioner og algoritmer C ++:

Den logiske eller matematiske model for en bestemt organisation af data.

ELLER

Det er en særlig måde at organisere data på en computer, så de kan bruges.

Tilsvarende sokker; forskellige organisering af listedatastrukturer og algoritmer C ++ tilgængelig er -

  1. Array
  2. Tilknyttet liste
  3. Stak
  4. Træ
  5. Kurve
  6. Hash-tabel
  7. heap
  8. Records
  9. Borde

Disse datastrukturer og algoritmer C ++ er meget vigtige under programmeringen. En god programmør lægger altid vægt på datastruktur snarere end kode. Hvert programmeringssprog fungerer på forskellige datastrukturer og algoritmer i C ++. Datastrukturer, der er tilgængelige i C ++, er som følger.

  1. Array
  2. Tilknyttet liste
  3. Stak
  4. Træ
  5. Kurve
  6. Hash-tabel
  7. heap

Lad os diskutere dette en efter en:

# 1 Array

Array er en enkleste type datastrukturer og algoritmer C ++. Array er defineret som en Fix-størrelse sekventiel samling af dataelementer af samme datatype. F.eks. A0 = 12, a1 = 21, a2 = 14, a3 = 15… .Vi kan repræsentere en-dimensionel matrix som vist på figuren:

Hvor

0, 1, 2, 3… ..n kaldes subscript eller index

a (1), a (2), … a (n) kaldes subscript-variabel

Det kan være 1-dimensionelt, 2-dimensionelt, 3-dimensionelt og så videre multidimensionalt.

I hukommelseslager lagres i sammenhængende hukommelsesplaceringer.

Den laveste adresse svarer til det første element

Den højeste adresse svarer til det sidste element

Vi kan erklære 1-D (1-dimensionel) matrix i C ++ som følger

dataType arrayName (arraySize);

F.eks. Int num (5);

Initialisering af matrix i C ++

num = (23, 10, 12, 3, 6);

Vi kan kombinere erklæring og initialisering i en enkelt erklæring som følger.

int num = (23, 10, 12, 3, 6);

Når vi dynamisk vil allokere størrelsen på en matrix, bør vi ny operatør som følger

int * a = nyt int (størrelse);

Ulempen med arrayet er indsættelse og sletning af elementer er langsom som i den ordnede matrix og dens lagring i fast størrelse.

# 2 Tilknyttet liste

Liste henviser til en lineær samling af genstande. En tilknyttet liste er en serie af tilsluttede knudepunkter (dataelement) som vist i figur 3. Hovedknudepunkt peger på den første knude på listen og de sidste knudepunkter peger på NULL angivet medÆ. Da hver knude mindst indeholder.

  1. Et stykke data (hvilken som helst type)
  2. Marker til næste knude på listen

Den tilknyttede liste er repræsenteret i hukommelsen ved hjælp af to arrays. Én matrix gemmer information kaldet info, der er data, der skal gemmes, og andre gemmer næste-markeringsfelt kaldet LINK, der er en adresse på den næste knude.

En fordel ved en linket liste over en matrix:

Både en matrix og en sammenkoblet liste er repræsentationer af en liste over elementer i hukommelsen. Den vigtige forskel er den måde, hvorpå varerne er knyttet sammen. Den væsentligste begrænsning af arrayet er elementindsættelse i array, og elementets sletning fra den ordnede matrix er vanskelig, da hvileelementer skal flyttes. Indsætning og sletning af elementer fra en linket liste er meget enkel.

Bemærk: Bliv en C ++ -udvikler
Lær at designe og tilpasse programmer til forskellige platforme. Koder, test, debug og implementer softwareapplikationer. Udvikle evner for at sikre, at applikationer kører problemfrit.

Typer af linket liste er:

1. Singelt knyttet liste : indeholder kun et linket felt, der indeholder adressen på næste knude på listen og den arkiverede info, der indeholder oplysninger, der skal gemmes.

2. Enkelt cirkulært forbundet liste er kun en enkelt liste, men den sidste knude på listen indeholder adressen på den første knude i stedet for null. Det er indholdet af hovedet og det næste felt i den sidste knude er det samme.

3. Den dobbeltkædede liste indeholder to linkede felt forrige og næste. Et tidligere linket felt, der har en adresse på den forrige knude på listen og det næste linkede felt, indeholder adressen på den næste knude på listen, og info, der er indgivet, holder informationen som en butik.

4. Dobbelt cirkulær linket liste er dobbeltkoblet liste, men næste felt i den sidste knude indeholder adressen på den første knude i stedet for null.

Anbefalede kurser

  • Kursus på VB.NET
  • Data Science Programmering Uddannelse
  • Online ISTQB-kursus
  • Kali Linux-kursus

Implementering af den tilknyttede liste i C ++ indebærer oprettelse af node, sletning af en node fra listen, indsættelse af en nyoprettet node i listen og søgning i en node med en bestemt nøgle.

Kode til oprettelse af noden gives som følger:

Indsættelse af en node på listen involverer tre tilfælde

1. Indsættelse af en node i begyndelsen betyder at indsætte den nyligt oprettede node som startnode. For at indsætte en knude i begyndelsen har først oprettet en ny knude og oprettet nyt knudepunkt til gammel start, og derefter opdateret start til punkt til ny knude som vist i figuren nedenfor:

Kode til indsættelse af en node i begyndelsen:

2. Indsættelse af en knude ved halen betyder indsættelse af den nyoprettede knude som den sidste knude. For at indsætte noden som en haleknude skal du oprette en ny knude og gøre det gamle sidste knudepunkt til den nye knude og derefter opdatere halen til punkt til ny knude.

3. Indsættelse af en node i en given position involverer oprettelsen af ​​en ny temp-node. Derefter skal du finde placeringen af ​​indsættelse af den nyligt oprettede node.

Kode til indsættelse af noden i en given position:

Sletning af en node fra listen indebærer, at en node fjernes fra den eksisterende liste. Sletning af noden fra linklisten er enkel end at indsætte en node i listen. I C ++ angives kode til sletning af noden som følger:

At krydse en node med en bestemt nøgle (værdi) fra en liste vil søge i en node fra listen, hvis info vil matche nøglen til en given node. Følgende C ++ - kode krydser en liste. datastrukturer og algoritmer C ++

# 3 Stak

En stak er en liste over elementer, hvori et element kun kan indsættes eller slettes i den ene ende, kaldet toppen af ​​stakken. Overvej eksemplet på et tårn i Hanoi. Når vi her skal indsætte en disk, er vi kun nødt til at indsætte den fra toppen, og på lignende måde foregår fjernelse af disken kun fra toppen.

Stak bruger LIFO-princippet, betyder at den fungerer i sidst i første ud-orden. Det er det sidste element, der er tilføjet til stakken, er det første fjernelseselement. Så der er fire grundlæggende handlinger, der kan udføres på stakken:

  • Isempty: Denne handling ser, om stakken er tom.
  • Push : Denne handling tilføjer et nyt element til stakken.
  • Pop: Denne handling fjerner et element fra den stakepost, der blev tilføjet senest.
  • Øverst: Denne handling returnerer det element, der blev tilføjet til stak senest.

Den følgende figur er et eksempel på stakken, hvor indsættelse i stakken og fjernelse fra en stak af emnet foregår fra toppen af ​​stakken og intet andet sted.

Stabeloverløb

Betingelsen som følge af forsøg på at skubbe et element på en fuld stak.

Stak understrøm

Betingelsen som følge af forsøg på at sprænge en tom stabel.

Her har vi vist nogle push og pop-operationer på stakken. Antag, at oprindeligt stakken er tom, så tilføjede vi F, A, M, R, N. Derefter pop to gange og skub N, H, B, T, K, O, P.

Implementering af stakken:

Det kan implementeres ved hjælp af en matrix eller en linket liste begge.

Følgende givet kode viser, hvordan stakken implementeres i C ++ ved hjælp af klasse. Her har defineret en klasse, der er navngivet som en stak, hvori der oprettes en matrix, der er navngivet som en pind med dynamisk størrelse og to hovedfunktioner push and pop.

Stabeloverløb: Når top> = størrelse-1

Stak understrøm: Når top <0

Relaterede artikler:-

Her er nogle artikler, der er relateret til datastrukturer og algoritmer C ++, som vil hjælpe dig med at få mere detaljeret information om algoritmer C ++ og datastrukturer og algoritmer, så venligst gå gennem linket, der er givet nedenfor. Hvis du kan lide artikeldatastrukturer og algoritmer C ++, så giv os din værdifulde kommentar.

  1. Snyderark til C ++ programmeringssprog
  2. Linux vs Ubuntu
  3. C ++ Interviewspørgsmål, du skal vide
  4. Datastrukturer og algoritmer Interviewspørgsmål | Mest nyttigt
  5. Den bedste artikel til algoritmer og kryptografi (eksempler)
  6. 8 Awesome algoritme Interview Spørgsmål og svar
  7. Fantastisk guide til Kali Linux vs Ubuntu
  8. C ++ Vector vs Array: Hvad er de bedste funktioner

Kategori: