Datakonstruksjoner og algoritmer C ++
Datastrukturer og algoritmer C ++ - betyr å arrangere eller organisere elementene på en bestemt måte. Når vi sier at vi må ordne elementer, kan disse elementene organiseres i forskjellige former. For eksempel kan sokker ordnes på forskjellige forskjellige måter. Du kan bare holde det i skapet ditt alt sammen. Eller du kan holde den pent brettet. Den beste måten kan være å brette og ordne dem fargekvis. Så for å søke i et bestemt par sokker, er det tredje arrangementet perfekt.
På en lignende måte å organisere sokker kan Data også organiseres på forskjellige måter eller former. Disse forskjellige måtene å organisere data kalles som Datastruktur. La oss se en formell definisjon av en datastruktur og grunnleggende datastrukturer og algoritmer.
Datakonstruksjoner og algoritmer C ++:
Den logiske eller matematiske modellen for en bestemt organisering av data.
ELLER
Det er en spesiell måte å organisere data på en datamaskin slik at de kan brukes.
Tilsvarende sokker; forskjellig organisering av listedatastrukturer og algoritmer C ++ tilgjengelig er -
- Array
- Koblet liste
- Stable
- Kø
- Tre
- Kurve
- Hash-bordet
- heap
- Records
- tabeller
Disse datastrukturene og algoritmene C ++ er veldig viktige under programmering. En god programmerer legger alltid vekt på datastruktur i stedet for kode. Hvert programmeringsspråk fungerer på forskjellige datastrukturer og algoritmer i C ++. Datastrukturer som er tilgjengelige i C ++ er som følger.
- Array
- Koblet liste
- Stable
- Kø
- Tre
- Kurve
- Hash-bordet
- heap
La oss diskutere dette en etter en:
# 1 Array
Array er en enkleste type datastrukturer og algoritmer C ++. Matrisen er definert som en Fix-size sekvensiell samling av dataelementer av samme datatype. F.eks. A0 = 12, a1 = 21, a2 = 14, a3 = 15… .Vi kan representere endimensjonal matrise som vist på figuren:
Hvor
0, 1, 2, 3… ..n kalles abonnement eller indeks
a (1), a (2), … a (n) kalles subscript-variabel
Det kan være 1-dimensjonalt, todimensjonalt, tredimensjonalt og så videre flerdimensjonalt.
I minnesammenheng lagres det i sammenhengende minneplasser.
Den laveste adressen tilsvarer det første elementet
Den høyeste adressen tilsvarer det siste elementet
Vi kan erklære 1-D (1-dimensjonal) matrise i C ++ som følger
dataType arrayName (arraySize);
F.eks. Int num (5);
Initierer Array i C ++
num = (23, 10, 12, 3, 6);
Vi kan kombinere erklæring og initialisering til en enkelt uttalelse som følger.
int num = (23, 10, 12, 3, 6);
Når vi ønsker å dynamisk fordele størrelsen på en matrise, bør vi nye operatører som følger
int * a = nytt int (størrelse);
Ulempen med matrisen er innsetting og sletting av elementer er langsom som i den ordnede matrisen og dens faste størrelse lagring.
# 2 lenket liste
Liste viser til en lineær samling av gjenstander. En koblet liste er en serie tilkoblede noder (dataelement) som vist i figur 3. Overskriftnode peker til den første noden i listen og de siste noden peker til NULL indikert medÆ. Ettersom hver node inneholder minst.
- Et stykke data (hvilken som helst type)
- Pekeren til neste node i listen
Linked List er representert i minnet ved å bruke to matriser. Én matrise lagrer informasjon som heter info som er data som skal lagres og andre lagrer neste-pekefelt kalt LINK som er en adresse til neste node.
En fordel med en koblet liste over en matrise:
Både en matrise og en lenket liste er representasjoner av en liste over elementer i minnet. Den viktige forskjellen er måten gjenstandene er koblet sammen på. Hovedbegrensningen for arrayet er elementinnsetting i array, og elementesletting fra den bestilte arrayen er vanskelig ettersom hvileelementer må flyttes. Innføring og sletting av elementer fra en lenket liste er veldig enkel.
Lær å designe og tilpasse programmer for forskjellige plattformer. Koder, test, feilsøk og implementer programvare. Utvikle ferdigheter for å sikre at applikasjoner går jevnt.
Typer koblet liste er:
1. Enkeltkoblet liste : inneholder bare ett lenket felt som inneholder adressen til neste node i listen og innlevert info som inneholder informasjon som skal lagres.
2. Enkel sirkulær koblet liste er bare en enkelt liste, men den siste noden i listen inneholder adressen til den første noden i stedet for null. Det er innholdet i hodet og neste felt i den siste noden er de samme.
3. Den dobbeltkoblede listen inneholder to koblede felt forrige og neste. Et tidligere koblet felt som har en adresse til den forrige noden i listen og neste koblede felt holder adressen til den neste noden i listen, og informasjon som er arkivert holder informasjonen til å være en butikk.
4. Dobbel sirkulær koblet liste er dobbelt lenket liste, men neste felt i den siste noden inneholder adressen til den første noden i stedet for null.
Anbefalte kurs
- Kurs på VB.NET
- Data Science Programming Training
- Online ISTQB-kurs
- Kali Linux treningskurs
Implementering av koblet liste i C ++ innebærer oppretting av node, sletting av en node fra listen, innsetting av en nyopprettet node i listen og søk i en node med en bestemt nøkkel.
Kode for oppretting av noden er gitt som følger:
Å sette inn en node i listen innebærer tre tilfeller
1. Å sette inn en node i begynnelsen betyr å sette inn den nyopprettede noden som startnode. For å sette inn en node i begynnelsen har du først opprettet en ny node og opprettet en ny nodepunkt til gammel start, og deretter oppdater start til å peke til ny node som vist i figuren nedenfor:
Kode for å sette inn en node i begynnelsen:
2. Å sette inn en node ved halen betyr å sette inn den nyopprettede noden som den siste noden. For å sette inn noden som en hale node må du opprette en ny node og gjøre det gamle siste noden peke til den nye noden og deretter oppdatere halen til å peke til en ny node.
3. Å sette inn en node på en gitt posisjon innebærer at det opprettes en ny temp-node, og må deretter finne plasseringen av innsetting av den nyopprettede noden.
Kode for innsetting av noden på en gitt posisjon:
Slette en node fra listen innebærer å fjerne en node fra eksisterende liste. Det er enkelt å slette noden fra lenkelisten enn å sette inn en node i listen. I C ++ er kode for sletting av noden gitt som følger:
Ved å krysse en node med en bestemt nøkkel (verdi) fra en liste, vil du søke i en node fra listen hvis info samsvarer med nøkkelen til en gitt node. Følgende C ++ - kode vil krysse en liste. datastrukturer og algoritmer C ++
# 3 Stabel
En stabel er en liste over elementer der et element kan settes inn eller slettes bare i den ene enden, kalt toppen av bunken. Tenk på eksemplet med et tårn i Hanoi. Når vi her må sette inn en plate, må vi bare sette den inn fra toppen, og på samme måte skjer fjerning av platen bare fra toppen.
Stack bruker LIFO-prinsippet betyr at den fungerer i sist i første ut-rekkefølge. Det er det siste elementet som er lagt til i bunken, det første fjerningselementet. Så det er fire grunnleggende operasjoner som kan utføres på bunken:
- Isempty: Denne operasjonen ser om stabelen er tom.
- Push : Denne operasjonen legger til et nytt element i stabelen.
- Pop: Denne operasjonen fjerner et element fra stabelelementet som ble lagt til sist.
- Øverst: Denne operasjonen returnerer elementet som ble lagt til i stabelen sist.
Følgende figur er et eksempel på bunken der innsetting i bunken og fjerning fra en bunke med gjenstanden foregår fra toppen av bunken og ingen andre steder.
Stabeloverløp
Tilstanden som følger av å prøve å skyve et element på en full bunke.
Stabel underflyt
Tilstanden som følger av at du prøver å lage en tom stabel.
Her har vi vist noen push og pop-operasjoner på stabelen. Anta at opprinnelig bunken er tom, så la vi til F, A, M, R, N. Så pop to ganger og skyv N, H, B, T, K, O, P.
Implementering av stabel:
Det kan implementeres ved hjelp av en matrise eller koblet liste begge.
Følgende gitt kode er skildret hvordan stabelen implementeres i C ++ ved bruk av klasse. Her har definert en klasse som er navngitt som en stabel hvor det opprettet en matrise som ble kalt som en pinne med dynamisk størrelse og to hovedfunksjoner push and pop.
Stack Overflow: Når toppen> = størrelse-1
Stabelunderstrømning: Når toppen <0
Relaterte artikler:-
Her er noen artikler som er relatert til datastrukturer og algoritmer C ++ som vil hjelpe deg å få mer detaljert informasjon om algoritmer C ++ og datastrukturer og algoritmer så vennligst gå gjennom lenken som er gitt nedenfor. Hvis du liker artikkeldatastrukturer og algoritmer C ++, så gi oss din verdifulle kommentar.
- Jukseark for C ++ Programmeringsspråk
- Linux vs Ubuntu
- C ++ intervjuspørsmål du må vite
- Datastrukturer og algoritmer intervjuspørsmål Mest brukbart
- Den beste artikkelen for algoritmer og kryptografi (eksempler)
- 8 Fantastiske algoritmeintervju spørsmål og svar
- Fantastisk guide på Kali Linux vs Ubuntu
- C ++ Vector vs Array: Hva er de beste funksjonene