Razlika med matriko in povezanim seznamom

Avtor: Laura McKinney
Datum Ustvarjanja: 3 April 2021
Datum Posodobitve: 8 Maj 2024
Anonim
Section 6
Video.: Section 6

Vsebina


Glavna razlika med Niz in Povezani seznam glede na njihovo strukturo. Nizi so temelji na indeksu podatkovna struktura, pri kateri je vsak element povezan z indeksom. Po drugi strani se na seznamu Povezani seznam opira reference kjer je vsako vozlišče sestavljeno iz podatkov in referenc na prejšnji in naslednji element.

V bistvu je matrika niz podobnih podatkovnih objektov, shranjenih na zaporednih pomnilniških mestih pod skupnim naslovom ali imenom spremenljivke.

Medtem ko je povezan seznam podatkovna struktura, ki vsebuje zaporedje elementov, kjer je vsak element povezan s svojim naslednjim elementom. V elementu povezanega seznama sta dve polji. Eno je polje Podatki, drugo pa polje povezave, Podatkovno polje vsebuje dejansko vrednost, ki jo je treba shraniti in obdelati. Poleg tega polje povezave vsebuje naslov naslednje podatkovne postavke na povezanem seznamu. Naslov, ki se uporablja za dostop do določenega vozlišča, je znan kot kazalec.


Druga pomembna razlika med matriko in povezanim seznamom je, da ima Array fiksno velikost in jo je treba predhodno objaviti, vendar Povezani seznam ni omejen na velikost in razširitev ter pogodbo med izvajanjem.

  1. Primerjalna tabela
  2. Opredelitev
  3. Ključne razlike
  4. Zaključek

Primerjalna tabela

Osnove za primerjavoNizPovezani seznam
OsnovniGre za skladen niz fiksnega števila podatkovnih postavk.To je urejen niz, ki vsebuje spremenljivo število podatkovnih postavk.
VelikostNavedeno med deklaracijo.Ni treba določiti; med izvajanjem rastejo in krčijo.
Dodelitev skladiščenja Lokacija elementa je dodeljena med časom prevajanja.Položaj elementa je dodeljen med izvajanjem.
Vrstni red elementov Shranjeno zaporedno Shranjeni naključno
Dostop do elementaNeposreden ali naključen dostop, tj. Določite indeks polja ali podpis.Dostop do zaporedja, tj. Premikanje, ki se začne s prvim vozliščem na seznamu s kazalcem.
Vstavljanje in brisanje elementaPočasi, saj je potreben premik.Lažje, hitro in učinkovito.
Iskanje Binarno iskanje in linearno iskanjelinearno iskanje
Potreben je pomnilnikmanj Več
Uporaba pomnilnikaNeučinkovitUčinkovito


Opredelitev matrike

Niz je opredeljen kot niz določenega števila homogenih elementov ali podatkovnih elementov. To pomeni, da lahko matrika vsebuje samo eno vrsto podatkov, bodisi vsa cela števila, vse številke s plavajočo vejico ali vse znake. Izjava matrike je naslednja:
int a;
Kjer int določa vrsto podatkov ali vrste elementov, se shrani shranjevanje elementov. "A" je ime matrike in številka, navedena v kvadratnih oklepajih, je število elementov, ki jih lahko matrika shrani, temu rečemo tudi velikost ali dolžina matrike.

Poglejmo si nekaj konceptov, ki si jih moramo zapomniti o nizih:

  • Do posameznih elementov matrike je mogoče dostopati z opisom imena matrike, ki ji sledi indeks ali podpis (določitev lokacije elementa v matriki) znotraj oklepajev. Na primer, da pridobimo 5. element matrike, moramo napisati izjavo a.
  • V vsakem primeru bodo elementi matrike shranjeni na zaporednem pomnilniškem mestu.
  • Prvi element matrike ima indeks nič. To pomeni, da bosta prvi in ​​zadnji element določena kot a oziroma oz.
  • Število elementov, ki jih je mogoče shraniti v matriki, tj. Velikost matrike ali njena dolžina je podana z naslednjo enačbo:
    (zgornja meja-spodnja meja) + 1
    Za zgornji niz bi bil (9-0) + 1 = 10. Kjer je 0 spodnja meja matrike in 9 je zgornja meja matrike.
  • Niz se lahko bere ali piše skozi zanko. Če beremo enodimenzionalni niz, zahteva eno zanko za branje in drugo za zapis (ing) matrike, na primer:
    a. Za branje matrike
    za (i = 0; i <= 9; i ++)
    {scanf ("% d", & a); }
    b. Za pisanje matrike
    za (i = 0; i <= 9; i ++)
    {f ("% d", a); }
  • V primeru dvodimenzionalne matrike bi potrebovali dve zanki in podobno n-dimenzionalni niz bi potreboval n zank.

Operacije, ki se izvajajo na nizih, so:

  1. Ustvarjanje matrike
  2. Prehod matrike
  3. Vstavljanje novih elementov
  4. Črtanje potrebnih elementov.
  5. Sprememba elementa.
  6. Spajanje nizov

Primer

Naslednji program prikazuje branje in pisanje matrike.

#include
#include
void main ()
{
int a, i;
f ("Vnesite niz");
za (i = 0; i <= 9; i ++)
{
scanf ("% d", & a);
}
f ("Vnesite niz");
za (i = 0; i <= 9; i ++)
{
f ("% d n", a);
}
getch ();
}

Opredelitev povezanega seznama

Povezani seznam je poseben seznam nekaterih podatkovnih elementov, povezanih med seboj. Pri tem vsak element kaže na naslednji element, ki predstavlja logični vrstni red. Vsak element se imenuje vozlišče, ki ima dva dela.

INFO del, ki shranjuje informacije, in TOČKA, ki kaže na naslednji element. Kot veste za shranjevanje naslova, imamo edinstvene podatkovne strukture v C, imenovane kazalci. Zato mora biti drugo polje seznama vrsta kazalca.

Vrste povezanih seznamov so posamično povezani seznam, dvojno povezani seznam, krožni povezani seznam, krožni dvojni povezani seznam.

Operacije, izvedene na povezanem seznamu, so:

  1. Ustvarjanje
  2. Potovanje
  3. Vstavitev
  4. Črtanje
  5. Iskanje
  6. Povezovanje
  7. Zaslon

Primer

Naslednji delček ponazarja ustvarjanje povezanega seznama:

Strukturno vozlišče
{
int num;
stuct vozlišče * naslednji;
}
začetek = NULL;
neveljavno ustvarjanje ()
{
typedef strukturno vozlišče NODE;
NODE * p, * q;
izbira;
prvi = NULL;
stori
{
p = (NODE *) malloc (sizeof (NODE));
f ("Vnesite podatkovno postavko n");
scanf ("% d", & p -> num);
če (p == NULL)
{
q = začetek;
medtem ko (q -> naslednji! = NULL)
{q = q -> naslednji
}
p -> naslednji = q -> naslednji;
q -> = p;
}
drugače
{
p -> naslednji = začetek;
začetek = p;
}
f ("Ali želite nadaljevati (vnesite y ali n)? n");
scanf ("% c", & izbira);
}
while ((izbira == y) || (izbira == Y));
}

  1. Niz je podatkovna struktura vsebuje zbirko podatkovnih elementov podobnih vrst, medtem ko je Povezani seznam podatkov neprimitivna struktura podatkov vsebuje zbirko neurejenih povezanih elementov, znanih kot vozlišča.
  2. V nizu elementi pripadajo indeksom, tj. Če želite priti v četrti element, morate v kvadratni oklepaj vnesti ime spremenljivke z njenim indeksom ali lokacijo.
    Na povezanem seznamu morate začeti od glave in delati svojo pot do četrtega elementa.
  3. Medtem ko je dostop do matrike elementov hiter, medtem ko seznam Povezani traja linearno, je precej počasnejši.
  4. Operacije, kot sta vstavljanje in brisanje v nizih, zahtevajo veliko časa. Po drugi strani je uspešnost teh operacij na povezanih seznamih hitra.
  5. Nizi so fiksne velikosti. Nasprotno pa so povezani seznami dinamični in prilagodljivi ter lahko razširijo in zmanjšajo svojo velikost.
  6. V matriki je pomnilnik dodeljen med časom prevajanja, medtem ko je na seznamu Povezani dodeljen med izvajanjem ali izvajanjem.
  7. Elementi so shranjeni zaporedno v nizih, medtem ko so naključno shranjeni na povezanih seznamih.
  8. Zahteva po pomnilniku je manjša zaradi dejanskih podatkov, ki so shranjeni znotraj indeksa v matriki. V nasprotnem primeru je v povezanih seznamih potrebno več pomnilnika zaradi shranjevanja dodatnih naslednjih in prejšnjih referenčnih elementov.
  9. Poleg tega je uporaba pomnilnika v nizu neučinkovita. Nasprotno je poraba pomnilnika v nizu učinkovita.

Zaključek

Array in Povezani seznami so vrste podatkovnih struktur, ki se razlikujejo po svoji strukturi, načinih dostopa in manipulacije, zahtevi pomnilnika in uporabi. In imajo posebno prednost in slabost pred njegovim izvajanjem. Posledično je mogoče uporabiti katerega koli po potrebi.