Ieteicams, 2024

Redaktora Izvēle

Starpība starp Array un Saistīto sarakstu

Galvenā atšķirība starp Array un Linked sarakstu attiecas uz to struktūru. Array ir indeksu datu struktūra, kurā katrs elements ir saistīts ar indeksu. No otras puses, Saistītais saraksts balstās uz atsaucēm, kurās katrs mezgls sastāv no datiem un atsauces uz iepriekšējo un nākamo elementu.

Būtībā masīvs ir līdzīgu datu objektu kopums, kas tiek glabāts secīgās atmiņas vietās ar kopējo virsrakstu vai mainīgo nosaukumu.

Kamēr saistītais saraksts ir datu struktūra, kas satur to 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, datu lauks satur faktisko vērtību, kas jāglabā un jāapstrādā. Turklāt saiknes laukā ir iekļauta saistītā saraksta nākamā datu vienuma adrese. Adrese, ko izmanto, lai piekļūtu konkrētam 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 Array ir fiksēts lielums, un tas ir jādeklarē iepriekš, bet sasaistītais saraksts nav ierobežots pēc izmēra un paplašināšanas un līguma izpildes laikā.

Salīdzinājuma diagramma

Salīdzinājuma pamatsArraySaistīts saraksts
PamataTas ir noteikts datu kopu skaits.Tas ir pasūtīts komplekts, kurā ir mainīgs datu vienību skaits.
IzmērsNorādīta deklarācijas laikā.Nav nepieciešams precizēt; augt un sarukt.
Glabāšanas piešķiršanaElementa atrašanās vieta tiek piešķirta kompilēšanas laikā.Elementa pozīcija tiek piešķirta darbības laikā.
Elementu secībaSaglabāts secīgiSaglabāts nejauši
Piekļuve elementamTieša vai nejauša piekļuve, ti, Norādiet masīva indeksu vai indeksu.Secīgi piekļuvis, ti, virziens, sākot no pirmā mezgla saraksta ar rādītāju.
Elementa ievietošana un dzēšanaNepieciešama lēna, salīdzinoši mainīga.Vieglāk, ātrāk un efektīvāk.
MeklēšanaBinārā meklēšana un lineārā meklēšanalineārā meklēšana
Nepieciešama atmiņamazākVairāk
Atmiņas izmantošanaNeefektīvaEfektīvs

Array definīcija

Masīvs ir noteikts kā noteikts skaits viendabīgu elementu vai datu vienību. Tas nozīmē, ka masīvs var saturēt tikai viena veida datus, vai nu visus veselos skaitļus, visus peldošo punktu skaitļus vai visas rakstzīmes. Masīva deklarācija ir šāda:
int a [10];
Kur int norāda datu tipu vai tipa elementu masīvu veikalus. “A” ir masīva nosaukums, un kvadrātiekavās norādītais numurs ir to elementu skaits, kurus masīvs var saglabāt, to sauc arī par masīva lielumu vai garumu.

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

  • Masīva atsevišķos elementus 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 izgūtu masīva 5. elementu, mums ir jāsagatavo paziņojums a [4].
  • Jebkurā gadījumā masīva elementi tiks saglabāti secīgā atmiņas vietā.
  • Pirmajam masīva elementam ir nulles indekss [0]. Tas nozīmē, ka pirmais un pēdējais elements tiks attiecīgi norādīti kā [0] un a [9].
  • Elementu skaits, ko var saglabāt masīvā, ti, masīva lielums vai tā garums ir šāds vienādojums:
    (augšējā robeža no apakšas) + 1
    Iepriekš minētajam masīvam būtu (9-0) + 1 = 10. Kur 0 ir masīva apakšējā robeža, un 9 ir matricas augšējā robeža.
  • Arkas var nolasīt vai rakstīt caur cilpu. Ja mēs lasām vienu dimensiju masīvu, tam ir nepieciešama viena cilpa lasīšanai un cita rakstīšanai (drukāšanai), piemēram:
    a. Lai lasītu masīvu
    par (i = 0; i <= 9; i ++)
    {scanf (“% d”, & a [i]); }
    b. Masīva rakstīšanai
    par (i = 0; i <= 9; i ++)
    {printf (“% d”, a [i]); }
  • 2-D masīva gadījumā tas prasītu divas cilpas un līdzīgi n-dimensiju masīvam būtu nepieciešamas n cilpas.

Darbības, kas veiktas ar masīviem, ir:

  1. Masīva veidošana
  2. Masīva pārvietošana
  3. Jaunu elementu ievietošana
  4. Nepieciešamo elementu dzēšana.
  5. Elementa modifikācija.
  6. Masīvu apvienošana

Piemērs

Nākamā programma ilustrē masīva lasīšanu un rakstīšanu.

#include
#include
void main ()
{
int a[10], i;
printf("Enter the array");
for ( i= 0; i <= 9; i++)
{
scanf ( "%d", &a[ i ] ) ;
}
printf( "Enter the array" );
for (i = 0 ; i <= 9 ; i++)
{
printf ( "%d\n", a[ i ] ) ;
}
getch ();
}

Saistītā saraksta definīcija

Saistītais saraksts ir konkrēts saraksts ar dažiem datu elementiem, kas saistīti ar vienu citu. Katrs elements norāda uz nākamo elementu, kas pārstāv loģisko pasūtījumu. Katru elementu sauc par mezglu, kam ir divas daļas.

INFO daļa, kas saglabā informāciju un POINTER, kas norāda uz nākamo elementu. Kā jūs zināt, lai saglabātu adresi, mums ir unikāla datu struktūra C, ko sauc par norādēm. Tāpēc saraksta otrajam laukam jābūt rādītāja tipam.

Saistīto sarakstu veidi ir vienreizēji piesaistītie saraksti, ar dubultu saistīto sarakstu, ar apļveida saistīto sarakstu, apļveida dubultā saite.

Saistītajā sarakstā veiktās darbības ir šādas:

  1. Radīšana
  2. Brauciens
  3. Ievietojums
  4. Dzēšana
  5. Meklēšana
  6. Saskaņošana
  7. Displejs

Piemērs

Nākamais fragments parāda saistītā saraksta izveidi:

struct node
{
int num;
stuct node *next;
}
start = NULL;
void create()
{
typedef struct node NODE;
NODE *p, *q;
char choice;
first = NULL;
do
{
p = (NODE *) malloc (sizeof (NODE));
printf ("Enter the data item\n");
scanf ("%d", & p -> num);
if (p == NULL)
{
q = start;
while (q -> next ! = NULL)
{ q = q -> next
}
p -> next = q -> next;
q -> = p;
}
else
{
p -> next = start;
start = p;
}
printf ("Do you want to continue (type y or n) ? \n");
scanf ("%c", &choice) ;
}
while ((choice == 'y') || (choice == 'Y'));
}

Galvenās atšķirības starp grafiku un saistīto sarakstu

  1. Masīvs ir datu struktūra satur līdzīgu datu elementu kolekciju, bet Saistīto sarakstu uzskata par ne-primitīvu datu struktūru, kas satur neierobežotu saistītu elementu kopumu, kas pazīstams kā mezgli.
  2. Masīvā elementi pieder indeksiem, ti, ja jūs vēlaties nokļūt ceturtajā elementā, ir jāraksta mainīgā nosaukums ar savu indeksu vai atrašanās vietu kvadrātiekavās.
    Saistītajā sarakstā tomēr ir jāsāk no galvas un jādarbojas, līdz nokļūsiet ceturtajā elementā.
  3. Kaut arī piekļuve elementu masīvam ir ātra, kamēr Saistītais saraksts ir lineārs laiks, tas ir diezgan lēnāks.
  4. Darbības, piemēram, ievietošana un dzēšana masīvos, patērē daudz laika. No otras puses, šo darbību veikšana Saistītajos sarakstos ir ātra.
  5. Arraži ir fiksēti. Turpretī Saistītie saraksti ir dinamiski un elastīgi, un tie var paplašināt un samazināt līgumu apjomu.
  6. Masīvā atmiņa tiek piešķirta kompilēšanas laikā, kamēr Saistītajā sarakstā tas tiek piešķirts izpildes vai izpildīšanas laikā.
  7. Elementi tiek glabāti secīgi masīvos, bet tas tiek saglabāts nejauši Saistītajos sarakstos.
  8. Atmiņas prasība ir mazāka, jo faktiskie dati tiek glabāti indeksā masīvā. Pretēji tam ir vajadzīgs vairāk atmiņas sasaistītajos sarakstos sakarā ar papildu nākamo un iepriekšējo atsauces elementu glabāšanu.
  9. Turklāt atmiņas izmantošana ir neefektīva masīvā. Savukārt atmiņas izmantošana ir efektīva masīvā.

Secinājums

Array un Linked saraksti ir datu struktūru veidi, kas atšķiras pēc to struktūras, piekļuves un manipulācijas metodēm, atmiņas prasībām un izmantošanas. Un tam ir īpaša priekšrocība un trūkumi salīdzinājumā ar tās īstenošanu. Līdz ar to var izmantot vienu no vajadzībām.

Top