Strukture podatkov in algoritmi C ++

Strukture podatkov in algoritmi C ++ - pomeni urejanje ali organiziranje elementov na določen način. Ko rečemo, da moramo elemente urediti, jih je mogoče organizirati v različnih oblikah. Na primer, nogavice lahko razporedimo na različne načine. Lahko ga hranite v omari ves zmešan. Lahko pa ga ohranite lepo zloženega. Najboljši način je, da jih zložite in uredite barvno. Torej za iskanje določenega para nogavic je tretja ureditev popolna.

Podoben način organizacije nogavic se lahko podatki tudi organizirajo na različne načine ali oblike. Ti različni načini organiziranja podatkov se imenujejo struktura podatkov. Oglejmo si formalno opredelitev strukture podatkov ter osnove podatkovnih struktur in algoritmov.

Strukture podatkov in algoritmi C ++:

Logični ali matematični model določene organizacije podatkov.

ALI

To je poseben način organizacije podatkov v računalniku, da se lahko uporabljajo.

Podobno kot nogavice; na voljo je različna organizacija podatkovnih struktur in algoritmov seznama C ++ -

  1. Niz
  2. Povezani seznam
  3. Zložite
  4. Čakalna vrsta
  5. Drevo
  6. Graf
  7. Hash Tabela
  8. Kup
  9. Zapisi
  10. Mize

Te podatkovne strukture in algoritmi C ++ so zelo pomembni pri programiranju. Dober programer vedno bolj poudari strukturo podatkov in ne kodo. Vsak programski jezik deluje na različnih podatkovnih strukturah in algoritmih v C ++. Podatkovne strukture, ki so na voljo v C ++, so naslednje.

  1. Niz
  2. Povezani seznam
  3. Zložite
  4. Čakalna vrsta
  5. Drevo
  6. Graf
  7. Hash Tabela
  8. Kup

O tem razpravljajmo drug za drugim:

# 1 Niz

Array je najpreprostejša vrsta podatkovnih struktur in algoritmov C ++. Niz je opredeljen kot zaporedna zbirka podatkovnih elementov iste vrste podatkov v velikosti fiksne velikosti. Npr. A0 = 12, a1 = 21, a2 = 14, a3 = 15 … Lahko si predstavljamo enodimenzionalni niz, kot je prikazano na sliki:

Kje

0, 1, 2, 3… ..n se imenuje predpis ali indeks

a (1), a (2), … a (n) se imenuje podpisna spremenljivka

Lahko je enodimenzionalna, dvodimenzionalna, tridimenzionalna in tako naprej večdimenzionalna.

V pomnilniškem nizu se shranijo v sosednje pomnilniške lokacije.

Najnižji naslov ustreza prvemu elementu

Najvišji naslov ustreza zadnjem elementu

1-D (1-dimenzionalni) niz lahko v C ++ razglasimo na naslednji način

dataType arrayName (arraySize);

Npr. Int število (5);

Inicializacija matrike v C ++

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

Izjavo in inicializacijo lahko združimo v eno samo izjavo, kot sledi.

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

Ko želimo dinamično dodeliti velikost matrike, bi morali nov operater, kot sledi

int * a = nov int (velikost);

Pomanjkljivost matrike sta vstavljanje in brisanje elementov počasno kot v urejenem polju in shranjevanje v fiksni velikosti.

# 2 Povezani seznam

Seznam se nanaša na linearno zbirko predmetov. Povezani seznam je niz povezanih vozlišč (podatkovni element), kot je prikazano na sliki 3. Glava vozlišča kaže na prvo vozlišče seznama, zadnje vozlišče pa na NULL, označeno s Æ. Ker vsako vozlišče vsebuje najmanj.

  1. Del podatkov (poljubna vrsta)
  2. Kazalec na naslednje vozlišče na seznamu

Povezani seznam je predstavljen v pomnilniku z uporabo dveh nizov. En niz shranjuje informacije, ki se imenujejo informacije, ki jih je treba shraniti, in druge shranjuje polje z naslednjim kazalcem, imenovano LINK, ki je naslov naslednjega vozlišča.

Prednost povezanega seznama nad matriko:

Niz in povezan seznam predstavljata seznam elementov v pomnilniku. Pomembna razlika je v načinu, kako so predmeti povezani. Glavna omejitev matrike je vstavljanje elementov v matriko in izbris elementov iz urejene matrike je težaven, saj je treba ostale elemente premakniti. Vstavljanje in brisanje elementov s povezanega seznama sta zelo preprosta.

Opomba: Postanite C ++ razvijalec
Naučite se oblikovati in prilagajati programe za različne platforme. Kode, preizkušanje, odpravljanje napak in izvajanje programske aplikacije. Razviti spretnosti za nemoteno delovanje aplikacij.

Vrste povezanih seznamov so:

1. Povezani seznam : vsebuje samo eno povezano polje, ki vsebuje naslov naslednjega vozlišča na seznamu, in podatke, ki vsebujejo podatke, ki jih je treba shraniti.

2. Enoten krožni povezan seznam je samo en seznam, vendar zadnje vozlišče seznama vsebuje naslov prvega vozlišča namesto ničelnega. To je vsebina glave in naslednje polje zadnjega vozlišča enaka.

3. Dvojno povezan seznam vsebuje dva povezana polja prejšnje in naslednje. Prej vezano polje, ki vsebuje naslov prejšnjega vozlišča na seznamu, in naslednje povezano polje vsebuje naslov naslednjega vozlišča na seznamu, vložene informacije pa vsebujejo podatke, ki so trgovina.

4. Dvojni krožni povezan seznam je dvojno povezan seznam, vendar naslednje polje zadnjega vozlišča vsebuje naslov prvega vozlišča namesto ničelnega.

Priporočeni tečaji

  • Tečaj na VB.NET
  • Usposabljanje za programiranje podatkov
  • Spletni tečaj ISTQB
  • Kali Linux tečaj usposabljanja

Izvajanje povezanega seznama v C ++ vključuje ustvarjanje vozlišča, brisanje vozlišča s seznama, vstavljanje novo ustvarjenega vozlišča v seznam in iskanje vozlišča z določenim ključem.

Koda za ustvarjanje vozlišča je podana na naslednji način:

Vstavljanje vozlišča na seznam vključuje tri primere

1. Vstavljanje vozlišča na začetku pomeni vstavljanje novo ustvarjenega vozlišča kot začetno vozlišče. Za vstavljanje vozlišča na začetku najprej ustvarite novo vozlišče in postavite novo vozlišče na stari začetek, nato pa posodobite začetek, da kaže na novo vozlišče, kot je prikazano na spodnji sliki:

Koda za vstavljanje vozlišča na začetku:

2. Vstaviti vozlišče na repu pomeni vstaviti novo ustvarjeno vozlišče kot zadnje vozlišče. Za vstavljanje vozlišča kot repnega vozlišča morate ustvariti novo vozlišče in narediti staro zadnjo točko vozlišča na novo vozlišče in nato posodobiti rep, da kaže na novo vozlišče.

3. Vstavljanje vozlišča v danem položaju vključuje ustvarjanje novega temp vozlišča, nato pa najti položaj vstavitve novo ustvarjenega vozlišča.

Koda za vstavitev vozlišča na danem položaju:

Brisanje vozlišča s seznama vključuje odstranitev vozlišča z obstoječega seznama. Izbris vozlišča s seznama povezav je preprost kot vstavljanje vozlišča v seznam. V C ++ je koda za brisanje vozlišča navedena na naslednji način:

Prehod vozlišča z določenim ključem (vrednostjo) s seznama poišče vozlišče s seznama, katerega informacije se bodo ujemale s ključem določenega vozlišča. Naslednja koda C ++ bo prešla seznam. podatkovne strukture in algoritmi C ++

# 3 sklad

Sklad je seznam elementov, v katere je element lahko vstavljen ali izbrisan samo na enem koncu, ki se imenuje vrh zložbe. Vzemimo primer stolpa v Hanoju. Ko moramo vstaviti disk, ga moramo vstaviti samo od zgoraj in podobno odstranitev diska poteka samo od zgoraj.

Stack uporablja načelo LIFO, kar pomeni, da deluje v zaporedju Last in First Out. To je zadnji element, ki je bil dodan v sklad, je prvi element odstranitve. Torej, obstajajo štiri osnovne operacije, ki jih je mogoče izvajati na kupu.

  • Isempty: Ta operacija vidi, ali je sveženj prazen.
  • Pritisni : Ta operacija doda nov element v zlaganje.
  • Pop: Ta operacija odstrani element, ki je bil nazadnje dodan v skladu.
  • Na vrh: Ta operacija vrne element, ki je bil nazadnje dodan v sklad.

Naslednja slika je primer sklada, pri katerem vstavljanje v sveženj in odstranitev iz sklada izdelka poteka od vrha in nikjer drugje.

Preobremenitev

Pogoj, ki je posledica poskusa elementa na celoten kup.

Kopni podtok

Pogoj, ki je posledica poskusa praznega svežnja.

Tu smo prikazali nekaj push in pop operacij na kupu. Predpostavimo, da je prvotno sveženj prazen, nato smo dodali F, A, M, R, N. Nato dvakrat pokukali in potisnili N, H, B, T, K, O, P.

Izvedba sklada:

Izvedemo ga lahko z uporabo matrike ali povezanega seznama.

Naslednja koda prikazuje, kako je sklad izveden v C ++ z uporabo Class. Tu so določili en razred, imenovan kot sklad, v katerem je ustvaril matriko, imenovano kot palico z dinamično velikostjo in dvema glavnima funkcijama push in pop.

Preliv sklada: Ko je vrh> = velikost-1

Podvodni niz: Ko je vrh <0

Povezani članki:-

Tukaj je nekaj člankov, ki so povezani s podatkovnimi strukturami in algoritmi C ++, s pomočjo katerih boste dobili več podrobnosti o algoritmih C ++ ter o podatkovnih strukturah in algoritmih tako prijazno prešli spodnjo povezavo. če so vam všeč strukture podatkov in algoritmi v članku C ++, nam pošljite svoj dragocen komentar.

  1. Navodila za programski jezik C ++
  2. Linux vs Ubuntu
  3. Vprašanja za intervju s C ++, ki jih morate vedeti
  4. Intervjuja o podatkovnih strukturah in algoritmih | Najbolj uporabno
  5. Najboljši članek za algoritme in kriptografijo (primeri)
  6. 8 Vprašanja in odgovori za osupljiv algoritem in intervju
  7. Neverjeten vodnik za Kali Linux proti Ubuntu
  8. C ++ Vector vs Array: Katere so najboljše funkcije