Datakonstruktioner och algoritmer C ++

Datakonstruktioner och algoritmer C ++ - betyder att ordna eller organisera elementen på ett visst sätt. När vi säger att vi måste ordna element kan dessa element organiseras i olika former. Till exempel kan strumpor ordnas på olika sätt. Du kan bara hålla det i ditt skåp helt trasslat. Eller så kan du hålla den snyggt vikta. Det bästa sättet kan vara att fälla och ordna dem färgvisa. Så för att söka efter ett visst par strumpor är det tredje arrangemanget perfekt.

På ett liknande sätt att organisera strumpor kan data också organiseras på olika sätt eller former. Dessa olika sätt att organisera data kallas som datastruktur. Låt oss se en formell definition av en datastruktur och grunderna om datastrukturer och algoritmer.

Datakonstruktioner och algoritmer C ++:

Den logiska eller matematiska modellen för en viss organisation av data.

ELLER

Det är ett särskilt sätt att organisera data i en dator så att de kan användas.

På samma sätt som strumpor; olika organisationer av listdatastrukturer och algoritmer C ++ tillgängliga är -

  1. Array
  2. Länkad lista
  3. Stack
  4. Träd
  5. Graf
  6. Hashtabell
  7. Högen
  8. Uppgifter
  9. tabeller

Dessa datastrukturer och algoritmer C ++ är mycket viktiga vid programmering. En bra programmerare lägger alltid tonvikt på datastrukturen snarare än kod. Varje programmeringsspråk fungerar på olika datastrukturer och algoritmer i C ++. Datastrukturer som är tillgängliga i C ++ är följande.

  1. Array
  2. Länkad lista
  3. Stack
  4. Träd
  5. Graf
  6. Hashtabell
  7. Högen

Låt oss diskutera detta en efter en:

# 1 Array

Array är en enklaste typ av datastrukturer och algoritmer C ++. Matrisen definieras som en fixstorleks sekvenssamling av dataelement av samma datatyp. Exempelvis a0 = 12, a1 = 21, a2 = 14, a3 = 15 … .Vi kan representera en-dimensionell matris som visas i figuren:

Var

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

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

Den kan vara 1-dimensionell, 2-dimensionell, 3-dimensionell och så vidare flerdimensionell.

I minnesfältet lagras i sammanhängande minnesplatser.

Den lägsta adressen motsvarar det första elementet

Den högsta adressen motsvarar det sista elementet

Vi kan förklara 1-D (1-dimensionell) matris i C ++ enligt följande

dataType arrayName (arraySize);

Exempelvis int num (5);

Initierar Array i C ++

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

Vi kan kombinera deklaration och initialisering till ett enda uttalande enligt följande.

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

När vi dynamiskt vill tilldela storleken på en matris bör vi nya operatörer enligt följande

int * a = nytt int (storlek);

Nackdelen med matrisen är insättning och borttagning av element är långsam som i den ordnade matrisen och dess lagring med fast storlek.

# 2 Länkad lista

Lista hänvisar till en linjär samling av artiklar. En länkad lista är en serie anslutna noder (dataelement) som visas i figur 3. Rubriknod pekar på den första noden i listan och de sista noden pekar på NULL som indikeras avÆ. Eftersom varje nod innehåller åtminstone.

  1. En bit data (valfri typ)
  2. Pekare till nästa nod i listan

Länkad lista representeras i minnet med hjälp av två matriser. En grupp lagrar information som heter information som är data som ska lagras och andra lagrar nästa pekarfält som heter LINK som är en adress till nästa nod.

En fördel med en länkad lista över en matris:

Både en matris och en länkad lista är representationer av en lista över objekt i minnet. Den viktiga skillnaden är hur artiklarna kopplas samman. Den huvudsakliga begränsningen för matrisen är elementinsättning i array och radering av element från den ordnade arrayen är svårt eftersom vilselement måste flyttas. Införing och radering av element från en länkad lista är mycket enkla.

Obs: Bli C ++ -utvecklare
Lär dig att designa och anpassa program för olika plattformar. Koda, testa, felsöka och implementera programvara. Utveckla färdigheter för att säkerställa att applikationer fungerar smidigt.

Typer av länkad lista är:

1. Singellänkad lista : innehåller endast ett länkat fält som innehåller adressen till nästa nod i listan och den inlagda informationen som innehåller information som ska lagras.

2. Enkel cirkulär länkad lista är endast en enda lista men den sista noden i listan innehåller adressen till den första noden istället för noll. Det är innehållet i huvudet och nästa fält i den sista noden är desamma.

3. Den dubbelt länkade listan innehåller två länkade fält föregående och nästa. Ett tidigare länkat fält som har en adress för den föregående noden i listan och nästa länkade fält innehar adressen till nästa nod i listan och information som lagras innehar informationen som en butik.

4. Dubbel cirkulär länkad lista är dubbel länkad lista men nästa fält i den sista noden innehåller adressen till den första noden istället för noll.

Rekommenderade kurser

  • Kurs på VB.NET
  • Utbildning i datavetenskapsprogrammering
  • Online ISTQB-kurs
  • Kali Linux-utbildningskurs

Implementering av länkad lista i C ++ innebär skapandet av nod, radering av en nod från listan, införande av en nyskapad nod i listan och sökning i en nod med en viss nyckel.

Kod för skapandet av noden ges enligt följande:

Att infoga en nod i listan innebär tre fall

1. Att infoga en nod i början innebär att infoga den nyligen skapade noden som startnod. För att infoga en nod i början har du först skapat en ny nod och skapat ny nod till gammal start, och sedan uppdatera start till peka på ny nod som visas i figuren nedan:

Kod för att infoga en nod i början:

2. Att sätta in en nod vid svansen innebär att infoga den nyligen skapade noden som den sista noden. För att sätta in noden som en svansnod måste du skapa en ny nod och göra den gamla sista noden till den nya noden och sedan uppdatera svansen till den nya noden.

3. Att infoga en nod vid en given position innebär att en ny temp-nod skapas. Måste sedan hitta positionen för införandet av den nyligen skapade noden.

Kod för infogning av noden vid en given position:

Att ta bort en nod från listan innebär att ta bort en nod från befintlig lista. Radering av noden från länklistan är enkel än att infoga en nod i listan. I C ++ anges kod för radering av noden enligt följande:

Om du går igenom en nod med en viss nyckel (värde) från en lista kommer du att söka efter en nod från listan vars information matchar nyckeln till en given nod. Följande C ++ -kod korsar en lista. datastrukturer och algoritmer C ++

# 3 Stack

En bunt är en lista över element där ett element kan infogas eller raderas endast i ena änden, kallad toppen av bunten. Tänk på exemplet på ett torn i Hanoi. När vi måste sätta i en skiva här måste vi bara sätta in den från toppen och på samma sätt avlägsnas skivan endast från toppen.

Stack använder LIFO-principen så att den fungerar i Last Out First Order. Det är det sista elementet som läggs till i stacken är det första elementet för borttagning. Så det finns fyra grundläggande operationer som kan utföras på bunten:

  • Isempty: Den här åtgärden ser om stapeln är tom.
  • Push : Den här åtgärden lägger till ett nytt objekt i stapeln.
  • Pop: Den här åtgärden tar bort ett objekt från det stackelement som lagts till senast.
  • Överst: Den här åtgärden returnerar objekt som lades till stack senast.

Följande figur är ett exempel på bunten där införing i bunten och borttagning från en bunt av föremålet sker från toppen av bunten och ingen annanstans.

Stapla överflödet

Det villkor som uppstår genom att försöka driva ett element på en full bunt.

Stapla underflödet

Villkoret för att försöka skicka en tom bunt.

Här har vi visat några push-och-pop-operationer på stacken. Anta att inledningsvis stacken är tom så läggs vi till F, A, M, R, N. Sedan pop två gånger och tryck N, H, B, T, K, O, P.

Implementering av stack:

Det kan implementeras med hjälp av en array eller länkad lista båda.

Efter givet kod visas hur stacken implementeras i C ++ med klass. Här har definierats en klass som heter som en stack i vilken skapades en matris med namnet en pinne med dynamisk storlek och två huvudfunktioner push och pop.

Stack Overflow: När topp> = storlek-1

Stack underflöde: När topp <0

Relaterade artiklar:-

Här är några artiklar som är relaterade till datastrukturerna och algoritmerna C ++ som hjälper dig att få mer information om algoritmerna C ++ och datastrukturerna och algoritmerna så vänligen gå igenom länken som ges nedan. Om du gillar artikelstrukturerna och algoritmerna C ++, ge oss din värdefulla kommentar.

  1. Fuskark för C ++ programmeringsspråk
  2. Linux vs Ubuntu
  3. C ++ Intervjufrågor du måste veta
  4. Datastrukturer och algoritmer Intervjufrågor | Mest användbar
  5. Den bästa artikeln för algoritmer och kryptografi (exempel)
  6. 8 Fantastiska algoritmintervjufrågor och svar
  7. Fantastisk guide för Kali Linux vs Ubuntu
  8. C ++ Vector vs Array: Vilka är de bästa funktionerna

Kategori: