Tietorakenteet ja algoritmit C ++

Tietorakenteet ja algoritmit C ++ - tarkoittaa elementtien järjestämistä tai järjestämistä tietyllä tavalla. Kun sanomme, että meidän on järjestettävä elementit, ne voidaan järjestää eri muodoissa. Sukat voidaan järjestää esimerkiksi eri tavoin. Voit vain pitää sen kaapissasi kaiken sekaisin. Tai voit pitää sen siististi taitettuna. Paras tapa on taitto ja järjestäminen värillisiksi. Joten tietyn sukkaparin etsimiseen, kolmas järjestely on täydellinen.

Samalla tavalla sukkien järjestämisessä Data voidaan myös järjestää eri tavoin tai muodoissa. Näitä erilaisia ​​tietojen järjestämistapoja kutsutaan tietorakenteeksi. Katsotaanpa datarakenteen muodollinen määritelmä sekä tietorakenteiden ja algoritmien perusteet.

Tietorakenteet ja algoritmit C ++:

Tietyn dataorganisaation looginen tai matemaattinen malli.

TAI

Se on erityinen tapa järjestää tietoja tietokoneessa siten, että sitä voidaan käyttää.

Samoin kuin sukat; C ++ -luettelotietorakenteiden ja algoritmien erilainen organisointi on -

  1. ryhmä
  2. Linkitetty luettelo
  3. Pino
  4. Jonottaa
  5. Puu
  6. kaavio
  7. Hash-taulukko
  8. Pino
  9. asiakirjat
  10. taulukot

Nämä tietorakenteet ja algoritmit C ++ ovat erittäin tärkeitä ohjelmoinnin aikana. Hyvä ohjelmoija painottaa aina tietorakennetta koodin sijasta. Jokainen ohjelmointikieli toimii erilaisissa tietorakenteissa ja algoritmeissa C ++: ssa. Tietorakenteet, joita on saatavana C ++: ssa, ovat seuraavat.

  1. ryhmä
  2. Linkitetty luettelo
  3. Pino
  4. Jonottaa
  5. Puu
  6. kaavio
  7. Hash-taulukko
  8. Pino

Keskustelemme tästä yksi kerrallaan:

# 1 ryhmä

Matriisi on yksinkertaisin tyyppi tietorakenteita ja algoritmeja C ++. Taulukko määritellään kiinteän kokoisena peräkkäisenä kokoelmana saman tietotyypin dataelementtejä. Esimerkiksi a0 = 12, a1 = 21, a2 = 14, a3 = 15… .Voimme edustaa yhden ulottuvuuden taulukkoa kuvan osoittamalla tavalla:

Missä

0, 1, 2, 3… ..n kutsutaan alaindeksi tai hakemisto

a (1), a (2), … a (n) kutsutaan alaindeksimuuttujaksi

Se voi olla 1-ulotteinen, 2-ulotteinen, 3-ulotteinen ja niin edelleen moniulotteinen.

Muistiryhmä tallentuu vierekkäisiin muistipaikkoihin.

Alin osoite vastaa ensimmäistä elementtiä

Suurin osoite vastaa viimeistä elementtiä

Voimme julistaa 1-D (1-ulotteinen) taulukon C ++ : ssa seuraavasti

dataType arrayName (arraySize);

Esim. Int num (5);

Alustetaan taulukko C ++ -sovelluksessa

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

Voimme yhdistää ilmoituksen ja alustamisen yhdeksi lauseeksi seuraavasti.

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

Kun haluamme allokoida taulukon koon dynaamisesti, meidän tulisi uusi operaattori toimittaa seuraavasti

int * a = uusi int (koko);

Matriisin haittapuoli on elementtien lisääminen ja poistaminen hitaasti, kuten tilatussa matriisissa ja sen kiinteän koon varastossa.

# 2 linkitetty luettelo

Lista viittaa lineaariseen tuotekokoelmaan. Yhdistetty luettelo on sarja kytkettyjä solmuja (dataelementti), kuten kuvassa 3. Otsikkosolmu osoittaa luettelon ensimmäiseen solmuun ja viimeinen solmu osoittaa NULL: iin, jota merkitäänÆ. Koska jokainen solmu sisältää ainakin.

  1. Tieto (mikä tahansa tyyppi)
  2. Osoitin luettelon seuraavaan solmuun

Linkitetty luettelo esitetään muistissa käyttämällä kahta taulukkoa. Yksi taulukko tallentaa tiedot, joita kutsutaan tietoksi, jotka ovat tallennettavia tietoja, ja muut tallentavat seuraavan osoittimen kentän nimeltä LINK, joka on seuraavan solmun osoite.

Etu linkitetystä luettelosta taulukkoon nähden:

Sekä taulukko että linkitetty luettelo edustavat muistissa olevien kohteiden luetteloa. Tärkeä ero on tapa, jolla esineet kytketään toisiinsa. Taulukon päärajoitus on elementtien sijoittaminen matriisiin ja elementtien poistaminen tilatusta matriisista on vaikeaa, koska lepoelementtien on oltava liikkeellä. Elementtien lisääminen ja poistaminen linkitetystä luettelosta on hyvin yksinkertaista.

Huomaa: Tule C ++ -kehittäjäksi
Opi suunnittelemaan ja mukauttamaan ohjelmia eri alustoille. Koodaa, testaa, tee virheenkorjaus ja toteuta ohjelmistosovellukset. Kehitä taitoja sovellusten sujuvuuden varmistamiseksi.

Linkitetyn luettelon tyypit ovat:

1. Yksittäisesti linkitetty luettelo : sisältää vain yhden linkitetyn kentän, joka pitää luettelossa seuraavan solmun osoitteen, ja arkistoituihin tietoihin, jotka pitävät tallennettavat tiedot.

2. Yksi pyöreä linkitetty lista on vain yksi luettelo, mutta luettelon viimeinen solmu sisältää ensimmäisen solmun osoitteen nollan sijaan. Se on pään sisältö ja viimeisen solmun seuraava kenttä ovat samat.

3. Kaksinkertaisesti linkitetyssä luettelossa on kaksi linkitettyä kenttää edellinen ja seuraava. Aiemmin linkitetty kenttä, jolla on luettelossa olevan edellisen solmun osoite ja seuraava linkitetty kenttä, pitää luettelossa seuraavan solmun osoitetta ja arkistoidut tiedot pitävät tallennettavia tietoja.

4. Kaksoisympyröity linkitetty lista on kaksinkertaisesti linkitetty, mutta viimeisen solmun seuraava kenttä sisältää ensimmäisen solmun osoitteen nollan sijaan.

Suositellut kurssit

  • Kurssi VB.NET
  • Data Science -ohjelmoinnin koulutus
  • Online ISTQB -kurssi
  • Kali Linux -koulutuskurssi

Linkitetyn luettelon toteuttaminen C ++: ssa sisältää solmun luomisen, solmun poistamisen luettelosta, vasta luodun solmun lisäämisen luetteloon ja solmun etsimisen tietyllä avaimella.

Koodi solmun luomiseen annetaan seuraavasti:

Solmun lisääminen luetteloon sisältää kolme tapausta

1. Solmun lisääminen alkuun tarkoittaa vastikään luodun solmun lisäämistä aloitussolmuksi. Solmun lisäämiseksi aluksi on ensin luotu uusi solmu ja asetettava uusi solmu osoittamaan vanhaan alkuun ja päivitetty sitten aloitettava osoittamaan uuteen solmuun kuvan osoittamalla tavalla:

Koodi solmun lisäämiseen alussa:

2. Solmun lisääminen häntään tarkoittaa vastikään luodun solmun lisäämistä viimeiseksi solmuksi. Solmun lisäämiseksi hännän solmuksi on luotava uusi solmu ja asetettava vanha viimeinen solmu osoittamaan uuteen solmuun ja päivitettävä sitten häntä osoittamaan uuteen solmuun.

3. Solmun lisääminen tiettyyn kohtaan edellyttää uuden temp-solmun luomista. Sitten on löydettävä vastikään luodun solmun lisäyskohta.

Koodi solmun sijoittamiseksi annettuun sijaintiin:

Solmun poistaminen luettelosta tarkoittaa solmun poistamista olemassa olevasta luettelosta. Solmun poistaminen linkkiluettelosta on yksinkertaista kuin solmun lisääminen luetteloon. C ++ -koodissa solmun poisto annetaan seuraavasti:

Jos solmu kulkee tietyllä avaimella (arvolla) luettelosta, se etsii luettelosta solmua, jonka tiedot vastaavat tietyn solmun avainta. Seuraava C ++ -koodi kulkee luettelon läpi. tietorakenteet ja algoritmit C ++

# 3 pino

Pino on luettelo elementeistä, joihin elementti voidaan asettaa tai poistaa vain sen yhdestä päästä, nimeltään pinon yläosa. Mieti esimerkiksi Hanoin tornia. Kun meidän on asetettava levy asemaan, meidän on asetettava se vain ylhäältä ja samalla tavalla levyn poistaminen tapahtuu vain ylhäältä.

Stack käyttää LIFO-periaatetta, joten se toimii viimeisessä ensimmäisessä ulos -järjestyksessä. Se on viimeinen pinoon lisätty elementti on ensimmäinen poistoelementti. Joten pinossa voidaan suorittaa neljä perustoimintoa:

  • Isempty: Tämä toimenpide näkee onko pino tyhjä.
  • Push : Tämä toiminto lisää uuden tuotteen pinoon.
  • Pop: Tämä toiminto poistaa kohteen viimeksi lisätystä pino-esineestä.
  • Yläosa: Tämä toiminto palauttaa viimeksi pinoon lisätyn kohteen.

Seuraava kuva on esimerkki pinosta, jossa asettaminen pinoon ja tuotteen poistaminen pinosta tapahtuu pinon yläosasta eikä missään muualla.

Pino ylivuoto

Edellytys, joka syntyy yrittämällä työntää elementti täyteen pinoon.

Pino alavirtaus

Tilanne, joka johtuu tyhjän pinoon yrittämisestä.

Täällä olemme osoittaneet joitain push- ja pop-toimintoja pinossa. Oletetaan, että alun perin pino on tyhjä, sitten lisäsimme F, A, M, R, N. Sitten popputaan kaksi kertaa ja työnnä N, H, B, T, K, O, P.

Stackin toteutus:

Se voidaan toteuttaa käyttämällä taulukkoa tai linkitettyä luetteloa molemmat.

Seuraava annettu koodi kuvaa kuinka pino toteutetaan C ++: ssa luokkaa käyttämällä. Tässä on määritelty yksi pinoksi nimetty luokka, jossa luotiin sauvaksi nimitetty taulukko, jolla on dynaaminen koko ja kaksi päätoimintoa push ja pop.

Pino ylivuoto: Kun ylhäällä = = koko-1

Pino alavirtaus: Kun ylä <0

Aiheeseen liittyvät artikkelit:-

Tässä on artikkeleita, jotka liittyvät tietorakenteisiin ja algoritmeihin C ++, jotka auttavat sinua saamaan lisätietoja algoritmeista C ++ ja tietorakenteista ja algoritmeista niin ystävällisesti alla olevan linkin läpi. Jos pidät artikkelin tietorakenteista ja algoritmeista C ++, anna meille arvokkaat kommenttisi.

  1. Huijari C ++ -ohjelmointikielelle
  2. Linux vs. Ubuntu
  3. C ++ -haastattelukysymykset, jotka sinun on tiedettävä
  4. Tietorakenteet ja algoritmit Haastattelukysymykset | Hyödyllisin
  5. Paras artikkeli algoritmeille ja kryptografialle (esimerkit)
  6. 8 mahtavaa algoritmihaastattelua koskevat kysymykset ja vastaukset
  7. Upea opas Kali Linux vs. Ubuntu-ohjelmasta
  8. C ++ Vector vs Array: Mitkä ovat parhaat toiminnot