Strukture podataka i algoritmi C ++

Strukture podataka i algoritmi C ++ - znači organiziranje ili organiziranje elemenata na određeni način. Kad kažemo da moramo organizirati elemente, ti se elementi mogu organizirati u različitim oblicima. Na primjer, čarape se mogu složiti na različite različite načine. Možete je držati u svom ormariću sav zbrkan. Ili ga možete držati uredno presavijenim. Najbolji način je savijanje i slaganje u boji. Dakle, za pretraživanje određenog para čarapa treći je raspored savršen.

Na sličan način organizacije čarapa, Podaci se također mogu organizirati na različite načine ili oblike. Ti različiti načini organiziranja podataka nazivaju se Struktura podataka. Pogledajmo formalnu definiciju strukture podataka i osnova podataka i algoritama.

Strukture podataka i algoritmi C ++:

Logički ili matematički model određene organizacije podataka.

ILI

To je poseban način organiziranja podataka na računalu kako bi se mogli koristiti.

Slično kao i čarape; dostupna je različita organizacija struktura podataka i algoritama popisa C ++ -

  1. red
  2. Povezani popis
  3. Stog
  4. Red
  5. drvo
  6. Grafikon
  7. Stol za osvjetljenje
  8. Hrpa
  9. ploče
  10. stolovi

Ove strukture podataka i algoritmi C ++ vrlo su važni tijekom programiranja. Dobar programer uvijek daje naglasak na strukturu podataka, a ne na kod. Svaki programski jezik radi na različitim strukturama podataka i algoritam u C ++. Strukture podataka koje su dostupne u C ++ su sljedeće.

  1. red
  2. Povezani popis
  3. Stog
  4. Red
  5. drvo
  6. Grafikon
  7. Stol za osvjetljenje
  8. Hrpa

Raspravimo o tome jedan po jedan:

# 1 Niz

Niz je najjednostavnija vrsta strukture podataka i algoritama C ++. Niz se definira kao sekvencijalna zbirka podatkovnih elemenata Fix veličine iste vrste podataka. Npr. A0 = 12, a1 = 21, a2 = 14, a3 = 15… .Mi možemo predstaviti jednodimenzionalni niz kao što je prikazano na slici:

Gdje

0, 1, 2, 3… ..n naziva se pretpisom ili indeksom

a (1), a (2), … a (n) naziva se pretkrivena varijabla

Može biti jednodimenzionalno, dvodimenzionalno, trodimenzionalno i tako dalje.

U memorijskom se nizu spremaju na neprekidna memorijska mjesta.

Najniža adresa odgovara prvom elementu

Najviša adresa odgovara posljednjem elementu

Možemo deklarirati 1-D (jednodimenzionalni) niz u C ++ na sljedeći način

dataType arrayName (arraySize);

Npr. Int broj (5);

Inicijaliziranje niza u C ++

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

Možemo kombinirati deklaraciju i inicijalizaciju u jednu naredbu na sljedeći način.

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

Kad želimo dinamički dodijeliti veličinu matrice, tada bismo trebali dobiti novog operatora na sljedeći način

int * a = novi int (veličina);

Nedostatak matrice je umetanje i brisanje elemenata sporo kao u uređenom polju i njegova fiksna veličina.

# 2 Povezani popis

Popis se odnosi na linearnu zbirku predmeta. Povezani popis je niz povezanih čvorova (element podataka) kao što je prikazano na slici 3. Glava čvora usmjerava na prvi čvor popisa, a posljednji čvor upućuje na NULL označen sa Æ. Kako svaki čvor sadrži najmanje.

  1. Dio podataka (bilo koje vrste)
  2. Pokažite na sljedeći čvor na popisu

Povezani popis predstavljen je u memoriji pomoću dva niza. Jedan niz pohranjuje informacije nazvane informacije koje se pohranjuju, a drugi pohranjuje polje sljedećeg pointera zvano LINK koje je adresa sljedećeg čvora.

Prednost povezanog popisa nad nizom:

Niz i povezani popis predstavljaju popis popisa u memoriji. Važna razlika je u načinu na koji su predmeti povezani. Glavno ograničenje matrice je umetanje elemenata u niz i brisanje elemenata iz naručene matrice je teško jer se preostali elementi moraju pomicati. Umetanje i brisanje elemenata s povezanog popisa vrlo je jednostavno.

Napomena: Postanite C ++ programer
Naučite dizajnirati i prilagoditi programe za različite platforme. Kôd, testiranje, uklanjanje pogrešaka i implementaciju softverskih aplikacija. Razvijte vještine kako biste osigurali nesmetani rad aplikacija.

Vrste povezanih lista su:

1. Popis pojedinačno povezanih : sadrži samo jedno povezano polje koje sadrži adresu sljedećeg čvora na popisu i podatke koji su sadržani u njemu informacije koje se trebaju pohraniti.

2. Pojedinačni kružni povezani popis je samo jedan popis, ali posljednji čvor popisa sadrži adresu prvog čvora umjesto nule. To je sadržaj glave i sljedeće polje zadnjeg čvora isto.

3. Dvostruko povezani popis sadrži dva povezana polja prethodno i sljedeće. Prethodno povezano polje koje sadrži adresu prethodnog čvora na popisu, a sljedeće povezano polje sadrži adresu sljedećeg čvora na popisu, a podnesene informacije sadrže podatke da budu trgovina.

4. Dvostruki kružni povezani popis dvostruko je povezan, ali sljedeće polje zadnjeg čvora sadrži adresu prvog čvora umjesto nule.

Preporučeni tečajevi

  • Tečaj na VB.NET
  • Obuka za programiranje podataka
  • Online ISTQB tečaj
  • Kali Linux tečaj za obuku

Implementacija povezanog popisa u C ++ uključuje stvaranje čvora, brisanje čvora s popisa, umetanje novostvorenog čvora u popis i pretraživanje čvora određenom tipkom.

Kôd za stvaranje čvora dan je na sljedeći način:

Umetanje čvora u popis uključuje tri slučaja

1. Umetanje čvora na početku znači umetanje novostvorenog čvora kao početnog čvora. Za umetanje čvora na početku prvo stvorite novi čvor i napravite novi čvor točku na stari start, a zatim ažurirajte start da ukaže na novi čvor kao što je prikazano na donjoj slici:

Kôd za umetanje čvora na početku:

2. Umetanje čvora na rep znači umetanje novostvorenog čvora kao posljednjeg čvora. Za umetanje čvora kao repnog čvora potrebno je stvoriti novi čvor i napraviti staru posljednju točku na novi čvor, a zatim ažurirati rep da bi ukazao na novi čvor.

3. Umetanje čvora na određeni položaj uključuje stvaranje novog temp čvora, a zatim morate pronaći položaj umetanja novostvorenog čvora.

Kôd za umetanje čvora na određenom položaju:

Brisanje čvora s popisa uključuje uklanjanje čvora s postojećeg popisa. Brisanje čvora s popisa veza jednostavno je nego umetanje čvora u popis. U C ++ kod za brisanje čvora je dan kako slijedi:

Prelaskom čvora s određenim ključem (vrijednošću) s popisa pretraživat će se čvor s popisa čija će se informacija podudarati s ključem određenog čvora. Sljedeći C ++ kod prelazit će popis. strukture podataka i algoritmi C ++

# 3 Stack

Spisak je popis elemenata u koji se element može umetnuti ili izbrisati samo na jednom kraju, a zove se vrh snopa. Razmotrimo primjer kule iz Hanoja. Ovdje kada moramo umetnuti disk, moramo ga umetnuti samo odozgo, a slično uklanjanje diska odvija se samo odozgo.

Stack koristi LIFO princip znači da radi u Last in First redoslijedu. To je posljednji element koji je dodan u stog je prvi element za uklanjanje. Dakle, postoje četiri osnovne operacije koje se mogu izvesti na hrpi:

  • Isempty: Ovom operacijom se vidi je li snop prazan.
  • Push : Ova operacija dodaje novu stavku u snop.
  • Pop: Ova operacija uklanja stavku iz nedavno dodane stavke.
  • Vrh: Ova operacija vraća stavku koja je dodana u snop nedavno.

Sljedeća slika primjer je snopa gdje se umetanje u gomilu i uklanjanje iz snopa predmeta odvija s vrha snopa i nigdje drugdje.

Stapni preljev

Uvjet je rezultat pokušaja guranja elementa na cijeli niz.

Kopni podtok

Uvjet je rezultat pokušaja da se isprazni snop.

Ovdje smo pokazali neke push i pop operacije na hrpi. Pretpostavimo da je u početku snop prazan, dodali smo F, A, M, R, N. Zatim dva puta iskočili i gurnuli N, H, B, T, K, O, P.

Implementacija stog:

Može se implementirati pomoću niza ili povezanih popisa.

Nakon danog koda prikazano je kako se sloga implementira u C ++ koristeći Class. Ovdje su definirali jednu klasu koja je imenovana kao snop u kojoj je stvoren niz imenovan kao štapić s dinamičkom veličinom i dvije glavne funkcije push and pop.

Prelijevanje snopa: Kada je vrh> = veličina-1

Podvodni sloj: Kada je vrh <0

Povezani članci:-

Evo nekoliko članaka koji se odnose na podatkovne strukture i algoritme C ++ koji će vam pomoći da saznate više detalja o algoritmima C ++, a podatkovne strukture i algoritmi tako ljubazno prođite dolje u nastavku. ako vam se sviđa struktura podataka i algoritmi članaka C ++, tada nam pošaljite svoj vrijedan komentar.

  1. Prevara za C ++ programski jezik
  2. Linux vs Ubuntu
  3. C ++ pitanja za intervju koja morate znati
  4. Intervjui o strukturama podataka i algoritmima | Najkorisniji
  5. Najbolji članak za algoritme i kriptografiju (primjeri)
  6. 8 Pitanja i odgovori za intervju sa strahovitim algoritmom
  7. Iznenađujući vodič na Kali Linux i Ubuntu
  8. C ++ Vector vs Array: Koje su najbolje funkcije

Kategorija: