Atšķirība starp masīvu un saistīto sarakstu

Autors: Laura McKinney
Radīšanas Datums: 3 Aprīlis 2021
Atjaunināšanas Datums: 7 Maijs 2024
Anonim
Array vs. ArrayList in Java Tutorial - What’s The Difference?
Video: Array vs. ArrayList in Java Tutorial - What’s The Difference?

Saturs


Galvenā atšķirība starp Masīvs un Saistītais saraksts ņemot vērā to struktūru. Masīvi ir indeksa pamatā datu struktūra, kurā katrs elements ir saistīts ar indeksu. No otras puses, saistītais saraksts ir atkarīgs no tā atsauces kur katrs mezgls sastāv no datiem un atsaucēm uz iepriekšējo un nākamo elementu.

Masīvs ir līdzīgu datu objektu kopums, kas tiek saglabāts secīgās atmiņas vietās ar kopēju virsrakstu vai mainīgu nosaukumu.

Lai gan saistītais saraksts ir datu struktūra, kas satur elementu secību, kur katrs elements ir saistīts ar nākamo elementu. Saistītā saraksta elementā ir divi lauki. Viens no tiem ir datu lauks, bet otrs ir saites lauks, lauks Dati satur faktisko vērtību, kas jāsaglabā un jāapstrādā. Turklāt saites laukā ir norādīta nākamā saistītā saraksta datu vienuma adrese. Adrese, kas tiek izmantota, lai piekļūtu noteiktam mezglam, ir pazīstama kā rādītājs.

Vēl viena būtiska atšķirība starp masīvu un saistīto sarakstu ir tāda, ka masīvam ir noteikts lielums un tas ir jādeklarē iepriekš, taču saistītais saraksts nav ierobežots ar izmēru un paplašināšanas un līguma izpildes laikā.


  1. Salīdzināšanas tabula
  2. Definīcija
  3. Galvenās atšķirības
  4. Secinājums

Salīdzināšanas tabula

Salīdzināšanas pamatsMasīvsSaistītais saraksts
PamataTas ir nemainīgs fiksēta skaita datu vienību kopums.Tas ir pasūtīts komplekts, kas satur mainīgu skaitu datu vienību.
IzmērsNorādīts deklarēšanas laikā.Nav nepieciešams norādīt; augt un sarukt izpildes laikā.
Krātuves piešķiršana Elementa atrašanās vieta tiek piešķirta apkopošanas laikā.Elementa pozīcija tiek piešķirta izpildes laikā.
Elementu secība Glabā pēc kārtas Saglabāti nejauši
Piekļuve elementamTieša vai nejauši pieejama, t.i., norādiet masīva indeksu vai apakšindeksu.Secīgi piekļūstot, t.i., šķērsojot, sākot ar rādītāja pirmo saraksta mezglu.
Elementa ievietošana un dzēšanaRelatīvi lēns, jo nepieciešama pārslēgšana.Vienkāršāk, ātri un efektīvi.
Meklēšana Binārā meklēšana un lineārā meklēšanalineārā meklēšana
Nepieciešama atmiņamazāk Vairāk
Atmiņas izmantošanaNeveiksmīgsEfektīvs


Masīva definīcija

Masīvs tiek definēts kā noteikta skaita viendabīgu elementu vai datu vienību kopums. Tas nozīmē, ka masīvs var saturēt tikai viena veida datus - visus skaitļus, visus peldošā komata numurus vai visas rakstzīmes. Masīva deklarācija ir šāda:
int a;
Kur int norāda datu tipu vai tipa elementus, masīva krājumus. “A” ir masīva nosaukums, un kvadrātiekavās norādītais numurs ir to elementu skaits, ko masīvs var uzglabāt, to sauc arī par masīva lielumu vai garumu.

Apskatīsim dažus no jēdzieniem, kas jāatceras par masīviem:

  • Atsevišķiem masīva elementiem var piekļūt, aprakstot masīva nosaukumu, kam seko indekss vai apakšindekss (nosakot elementa atrašanās vietu masīvā) kvadrātiekavās. Piemēram, lai iegūtu masīva 5. elementu, mums jāraksta paziņojums a.
  • Jebkurā gadījumā masīva elementi tiks saglabāti secīgā atmiņas vietā.
  • Pati pirmā masīva elementa indekss ir nulle. Tas nozīmē, ka pirmais un pēdējais elements tiks norādīts attiecīgi kā, un a.
  • Elementu skaitu, ko var uzglabāt masīvā, t.i., masīva lielumu vai tā garumu nosaka ar šādu vienādojumu:
    (augšējā robeža-apakšējā robeža) + 1
    Iepriekšminētajam masīvam tas būtu (9-0) + 1 = 10. Kur 0 ir masīva apakšējā robeža un 9 ir masīva augšējā robeža.
  • Masīvi var nolasīt vai rakstīt caur cilpu. Ja mēs lasām viendimensiju masīvu, masīva lasīšanai ir nepieciešama viena cilpa, bet masīva rakstīšanai (ievadīšanai) - viena cilpa, piemēram:
    a. Masīva lasīšanai
    priekš (i = 0; i <= 9; i ++)
    {scanf (“% d”, & a); }
    b. Par masīva rakstīšanu
    priekš (i = 0; i <= 9; i ++)
    {f (“% d”, a); }
  • Divdimensiju masīva gadījumā tai būtu vajadzīgas divas cilpas, un līdzīgi n-dimensiju masīvam būtu vajadzīgas n cilpas.

Ar masīviem tiek veiktas šādas darbības:

  1. Masīva izveidošana
  2. Braucot pa masīvu
  3. Jaunu elementu ievietošana
  4. Nepieciešamo elementu dzēšana.
  5. Elementa modifikācija.
  6. Masīvu apvienošana

Piemērs

Šī programma ilustrē masīva lasīšanu un rakstīšanu.

# iekļaut
# iekļaut
tukšs galvenais ()
{
int a, i;
f ("Ievadiet masīvu");
priekš (i = 0; i <= 9; i ++)
{
scanf ("% d", & a);
}
f ("Ievadiet masīvu");
priekš (i = 0; i <= 9; i ++)
{
f ("% d n", a);
}
getch ();
}

Saistītā saraksta definīcija

Saistītais saraksts ir noteikts saraksts ar dažiem datu elementiem, kas saistīti ar otru. Šajā elementā katrs norāda uz nākamo elementu, kas apzīmē loģisko secību. Katru elementu sauc par mezglu, kam ir divas daļas.

INFO daļa, kurā tiek glabāta informācija, un PUNKTS, kas norāda uz nākamo elementu. Kā jūs zināt adreses glabāšanai, mums C ir unikālas datu struktūras, kuras sauc par rādītājiem. Tāpēc saraksta otrajam laukam jābūt rādītāja veidam.

Saistīto sarakstu veidi ir atsevišķi savienots saraksts, divkārši saistīts saraksts, apļveida saišu saraksts, apļveida dubultā saišu saraksts.

Saistītajā sarakstā tiek veiktas šādas darbības:

  1. Radīšana
  2. Šķērso
  3. Ievietošana
  4. Dzēšana
  5. Meklēšana
  6. Konkatenācija
  7. Displejs

Piemērs

Šis fragments ilustrē saistīta saraksta izveidi:

struktūras mezgls
{
int num;
stulbs mezgls * blakus;
}
sākums = NULL;
anulēt izveidot ()
{
typedef struct node NODE;
NODE * p, * q;
char izvēle;
pirmais = NULL;
darīt
{
p = (NODE *) malloc (izmērs (NODE));
f ("Ievadiet datu vienumu n");
scanf ("% d", & p -> num);
ja (p == NULL)
{
q = sākums;
kamēr (q -> nākamais! = NULL)
{q = q -> nākamais
}
p -> nākamais = q -> nākamais;
q -> = p;
}
cits
{
p -> nākamais = sākums;
sākums = p;
}
f ("Vai vēlaties turpināt (ierakstiet y vai n)? n");
scanf ("% c", & izvēle);
}
savukārt ((izvēle == y) || (izvēle == Y));
}

  1. Masīvs ir datu struktūra, kurā ir līdzīga tipa datu elementu kolekcija, turpretī saistītais saraksts tiek uzskatīts par neprimitīvu datu struktūru, kurā ir nesakārtotu saistītu elementu kolekcija, kas pazīstama kā mezgli.
  2. Masīvā elementi pieder indeksiem, t.i., ja vēlaties iekļūt ceturtajā elementā, kvadrātiekavā ir jāraksta mainīgā nosaukums ar tā indeksu vai atrašanās vietu.
    Saistītajā sarakstā jums tomēr jāsāk no galvas un jāturpina, līdz nonākat pie ceturtā elementa.
  3. Lai gan ātra pieeja elementu masīvam, kamēr saistītajam sarakstam ir nepieciešams lineārs laiks, tas ir diezgan lēnāks.
  4. Tādas operācijas kā ievietošana un dzēšana masīvos prasa daudz laika. No otras puses, šīs operācijas saistītos sarakstos tiek veiktas ātri.
  5. Masīvi ir noteikta lieluma. Turpretī saistītie saraksti ir dinamiski un elastīgi, un tie var paplašināties un samazināt tā lielumu.
  6. Masīvā atmiņa tiek piešķirta kompilēšanas laikā, savukārt Saistītajā sarakstā tā tiek piešķirta izpildes vai izpildlaika laikā.
  7. Elementi tiek secīgi glabāti masīvos, turpretī tie tiek nejauši glabāti Saistītajos sarakstos.
  8. Nepieciešamība pēc atmiņas ir mazāka, jo faktiskie dati tiek glabāti indeksā masīvā. Pretstatā saistītajiem sarakstiem ir vajadzīga lielāka atmiņa, jo tiek saglabāti nākamie un iepriekšējie atsauces elementi.
  9. Turklāt atmiņas izmantošana masīvā ir neefektīva. Un otrādi - atmiņas izmantošana masīvā ir efektīva.

Secinājums

Masīvs un Saistītie saraksti ir datu struktūru veidi, kas atšķiras pēc to struktūras, piekļuves un manipulācijas metodēm, atmiņas nepieciešamības un izmantošanas. Un tai ir īpašas priekšrocības un trūkumi salīdzinājumā ar tās ieviešanu. Līdz ar to vienu no tiem var izmantot pēc vajadzības.