Adatstruktúrák és algoritmusok C ++

Adatszerkezetek és algoritmusok C ++ - az elemek meghatározott módon történő elrendezését vagy rendezését jelenti. Amikor azt mondjuk, hogy elemeket kell rendeznünk, akkor ezek az elemek különböző formákban rendeződhetnek. Például a zoknit különféle módon lehet elrendezni. Csak összezavarodva tarthatja a szekrényben. Vagy gondosan összehajtva tarthatja. A legjobb módszer a hajtogatás és a szín szerinti elrendezés. Tehát egy adott zoknipár kereséséhez a harmadik elrendezés tökéletes.

A zokni megszervezésének hasonló módon az adatok különböző módon vagy formában is megszervezhetők. Az adatszervezés ezen különféle módjait adatstruktúrának nevezzük. Lássuk az adatszerkezet formális meghatározását, az adatszerkezetek és az algoritmusok alapjait.

Adatszerkezetek és algoritmusok C ++:

Az adatszervezés logikai vagy matematikai modellje.

VAGY

Ez az adatgyűjtés egy speciális módja a számítógépben, hogy felhasználható legyen.

Hasonlóan a zoknihoz; a rendelkezésre álló listaadat-struktúrák és algoritmusok eltérő szervezése -

  1. Sor
  2. Kapcsolódó lista
  3. Kazal
  4. sorban áll
  5. Fa
  6. Grafikon
  7. Hasítóasztal
  8. Halom
  9. Records
  10. asztalok

Ezek az adatszerkezetek és a C ++ algoritmusok nagyon fontosak a programozás során. Egy jó programozó mindig a hangsúly helyett az adatstruktúrára helyezi a hangsúlyt. Minden programozási nyelv különféle adatszerkezeteken és algoritmusokon működik a C ++-ban. A C ++ formában elérhető adatstruktúrák a következők.

  1. Sor
  2. Kapcsolódó lista
  3. Kazal
  4. sorban áll
  5. Fa
  6. Grafikon
  7. Hasítóasztal
  8. Halom

Beszéljük meg ezt egyenként:

# 1 tömb

Az Array a C ++ adatstruktúrák és algoritmusok legegyszerűbb típusa. A tömb meghatározása azonos méretű adatelemek fix méretű szekvenciális gyűjteményeként történik. Például a0 = 12, a1 = 21, a2 = 14, a3 = 15 …. Egydimenziós tömböt ábrázolhatunk az ábra szerint:

Hol

A 0, 1, 2, 3… ..n nevű index vagy index

a (1), a (2), … a (n) alsó index változónak nevezzük

Lehet 1-dimenziós, 2-dimenziós, 3-dimenziós és így tovább többdimenziós.

A memóriában a tömb szomszédos memóriahelyekre tárolódik.

A legalacsonyabb cím az első elemnek felel meg

A legmagasabb cím az utolsó elemnek felel meg

Az 1-D (1-dimenziós) tömböt C ++ -ban deklarálhatjuk az alábbiak szerint

dataType arrayName (arraySize);

Pl. Int num (5);

A tömb inicializálása a C ++ formátumban

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

A nyilatkozatot és az inicializálást egyetlen állításba kombinálhatjuk, az alábbiak szerint.

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

Ha dinamikusan szeretnénk kiosztani a tömb méretét, akkor új operátort kell felvennünk, az alábbiak szerint

int * a = új int (méret);

A tömb hátránya az elemek beillesztése és törlése, mint a rendezett tömbben és a rögzített méretű tárolásában, lassú.

# 2 Kapcsolódó lista

A lista a cikkek lineáris gyűjteményére utal. A csatolt lista a csatlakoztatott csomópontok sorozata (adatelem), ahogy az a 3. ábrán látható. A fejléc csomópont a lista első csomópontjára mutat, az utolsó csomópont pedig a NULL pontra mutat, amelyet Æ jelöl. Mivel minden csomópont legalább tartalmaz.

  1. Darab adat (bármilyen típusú)
  2. Mutató a lista következő csomópontjához

A Linked List két tömb segítségével jelenik meg a memóriában. Az egyik tömb az információnak nevezett információt tárolja, amely a tárolni kívánt adat, és a többi tárolja a következő mutatómezőt, a LINK nevű mezőt, amely a következő csomópont címe.

A kapcsolt lista előnye egy tömbnél:

A tömb és a csatolt lista egyaránt a memóriában lévő elemek listájának ábrázolása. A fontos különbség az elemek összekapcsolásának módja. A tömb fő korlátozása az elem beillesztése a tömbbe, és az elemek törlése a rendezett tömbből nehéz, mivel a többi elemet mozgatni kell. Az elemek beillesztése és törlése egy összekapcsolt listából nagyon egyszerű.

Megjegyzés: Legyen C ++ fejlesztő
Tanulja meg a programok megtervezését és testreszabását a különböző platformok számára. Kódoljon, teszteljen, hibakeresést végezzen és telepítsen szoftver alkalmazásokat. Fejlessze készségeit az alkalmazások zökkenőmentes futtatásához.

A kapcsolt lista típusai:

1. Egyszeresen összekapcsolt lista : csak egy összekapcsolt mezőt tartalmaz, amely a következő csomópont címét tartalmazza a listában, valamint az elküldött információt, amely a tárolni kívánt információkat tartalmazza.

2. Az egykörös kapcsolt lista csak egyetlen lista, de a lista utolsó csomópontja null helyett az első csomópont címét tartalmazza. Ez a fej tartalma és az utolsó csomópont következő mezője megegyezik.

3. A kétszer összekapcsolt lista két összekapcsolt mezőt tartalmaz az előző és a következő. Egy korábban összekapcsolt mező, amely a listában az előző csomópont címét tartalmazza, és a következő összekapcsolt mező a listában lévő következő csomópont címét, a benyújtott információ pedig az adatok tárolására szolgál.

4. A Double Circular Linked List kétszeresen összekapcsolt lista, de az utolsó csomópont következő mezője a null helyett az első csomópont címét tartalmazza.

Ajánlott tanfolyamok

  • Tanfolyam a VB.NET-en
  • Adattudományi programozási képzés
  • Online ISTQB tanfolyam
  • Kali Linux tanfolyam

A kapcsolt lista C ++-ban történő megvalósítása magában foglalja a csomópont létrehozását, egy csomópont törlését a listából, egy újonnan létrehozott csomópont beillesztését a listába és egy csomópont keresését egy adott kulccsal.

A csomópont létrehozásának kódja a következő:

Egy csomópont beillesztése a listába három esetből áll

1. A csomópont elején történő beillesztése az újonnan létrehozott csomópont beillesztését jelenti kezdő csomópontként. A csomópont elején történő beillesztéséhez először hozzon létre egy új csomópontot, és állítsa az új csomópontot a régi kezdetre, majd frissítse az elemet az új csomópontra, az ábra szerint:

Kód a csomópont beillesztéséhez az elején:

2. A csomópont beillesztése a farokba azt jelenti, hogy az újonnan létrehozott csomópontot beillesztik utolsó csomópontként. A csomópont farokcsomópontként való beszúrásához létre kell hoznia egy új csomópontot, és a régi utolsó csomópontot az új csomópontra kell mutatnia, majd frissíteni kell a farkot az új csomópontra mutatva.

3. Egy csomópont beillesztése egy adott pozícióba új temp csomópont létrehozását foglalja magában. Ezután meg kell találni az újonnan létrehozott csomópont beillesztési helyzetét.

Kód a csomópont beillesztéséhez egy adott pozícióba:

Csomópont törlése a listából magában foglalja egy csomópont eltávolítását a létező listáról. A csomópont törlése a hivatkozási listáról egyszerű, mint egy csomópont beszúrása a listába. A C ++ kódban a csomópont törlésének kódja a következő:

Ha egy csomópontot egy adott kulccsal (értékkel) halad át egy listából, akkor a csomópontban megkeresi a listát, amelynek információi megegyeznek az adott csomópont kulcsával. A következő C ++ kód átjárja a listát. adatszerkezetek és algoritmusok C ++

# 3 verem

A verem az elemek listája, amelyekbe egy elemet csak az egyik végébe lehet beilleszteni vagy törölni, az úgynevezett verem tetejére. Vegyük például a Hanoi torony példáját. Itt, amikor egy lemezt be kell helyeznünk, csak felülről kell behelyeznünk, és hasonlóképpen a lemezt csak felülről kell eltávolítani.

A Stack a LIFO elvet használja, ami azt jelenti, hogy az utolsó sorrendben működik. Ez az utolsó elem, amelyet a veremhez adtak, az első eltávolítás. Tehát négy alapművelet hajtható végre a veremben:

  • Isempty: Ez a művelet azt látja, hogy a köteg üres-e.
  • Nyomás : Ez a művelet új elemet ad a köteghez.
  • Pop: Ez a művelet eltávolítja az elemet a legutóbb hozzáadott verem elemből.
  • Felül: Ez a művelet olyan elemet ad vissza, amelyet a legutóbb hozzáadtak a veremhez.

Az alábbi ábra egy példát mutat a veremre, ahol a verembe történő beillesztés és az elem eltávolítása a halom tetejéről, és sehol másutt történik.

Verem túlcsordulása

Az a feltétel, amely egy elemnek egy teljes veremre való próbálásának eredménye.

Verem alulcsordulása

Az az állapot, amely egy üres halom kinyitására próbálkozik.

Itt bemutattunk néhány push és pop műveletet a veremben. Tegyük fel, hogy kezdetben a köteg üres, majd hozzáadunk F, A, M, R, N. Majd kétszer tekerjük fel és nyomjuk meg az N, H, B, T, K, O, P.

Verem megvalósítása:

Egy tömb, vagy csatolt lista felhasználásával valósítható meg.

A megadott kód azt szemlélteti, hogy a verem hogyan valósul meg C ++ -on az osztály használatával. Itt határoztak meg egy veremnek nevezett osztályt, amelyben dinamikus méretű pálcának nevezett tömböt hoztak létre, két fő funkcióval: push és pop.

Verem túlcsordulása: Ha felső> = 1. méret

Verem alulcsordulása: Ha felső <0

Kapcsolódó cikkek:-

Íme néhány cikk, amelyek az adatszerkezetekkel és a C ++ algoritmusokkal kapcsolatosak, amelyek segítenek a C ++ algoritmusok és az adatszerkezetek és algoritmusok részletesebb megismerésében, így kedveskedjenek az alább megadott linken keresztül. Ha tetszik a cikk adatstruktúrája és a C ++ algoritmusok, akkor adja meg nekünk értékes megjegyzését.

  1. Cheat lap a C ++ programozási nyelvhez
  2. Linux vs Ubuntu
  3. C ++ interjúkérdések, amelyeket tudnia kell
  4. Adatszerkezetek és algoritmusok Interjúkérdések | Leghasznosabb
  5. A legjobb cikk az algoritmusok és a kriptográfia számára (példák)
  6. 8 félelmetes algoritmusos interjú kérdése és válasz
  7. Csodálatos útmutató a Kali Linux vs Ubuntu oldalról
  8. C ++ Vector vs Array: Melyek a legjobb funkciók

Kategória: