Preporučeno, 2020

Izbor Urednika

Razlika između polja i povezanog popisa

Glavna razlika između matrice i povezanog popisa odnosi se na njihovu strukturu. Nizovi su indeksne strukture podataka gdje je svaki element povezan s indeksom. S druge strane, Povezani popis se oslanja na reference gdje se svaki čvor sastoji od podataka i referenci na prethodni i sljedeći element.

U osnovi, niz je skup sličnih podatkovnih objekata pohranjenih u sekvencijalnim memorijskim lokacijama pod zajedničkim naslovom ili nazivom varijable.

Dok je povezan popis struktura podataka koja sadrži niz elemenata gdje je svaki element povezan sa svojim sljedećim elementom. U elementu povezane liste postoje dva polja. Jedno je polje podataka, a drugo je polje veze, polje podataka sadrži stvarnu vrijednost koju treba pohraniti i obraditi. Nadalje, polje veze sadrži adresu sljedeće stavke podataka u povezanom popisu. Adresa koja se koristi za pristup određenom čvoru poznata je kao pokazivač.

Druga značajna razlika između niza i povezanog popisa je u tome što Array ima fiksnu veličinu i mora biti deklariran prije, ali Linked List nije ograničen na veličinu i proširuje se i sklapa tijekom izvršavanja.

Tablica usporedbe

Osnova za usporedburedPovezani popis
Osnovni, temeljniTo je konzistentan skup fiksnog broja podataka.To je uređeni skup koji sadrži varijabilni broj podataka.
VeličinaNavedeno tijekom deklaracije.Nije potrebno navesti; rastu i smanjuju se tijekom izvršenja.
Dodjela pohranePoložaj elementa dodjeljuje se tijekom kompiliranja.Položaj elementa dodjeljuje se tijekom vremena izvođenja.
Redoslijed elemenataPohranjen uzastopnoPohranjeno nasumično
Pristup elementuDirektan ili nasumično pristup, tj. Navedite indeks indeksa ili indeks.Pristup koji je sekvencijalno pristupan, tj. Kretanje počevši od prvog čvora na popisu po pokazivaču.
Umetanje i brisanje elementaSpora relativna promjena je potrebna.Lakše, brže i učinkovitije.
PretraživanjeBinarno pretraživanje i linearno pretraživanjelinearno pretraživanje
Potrebna memorijamanjeViše
Korištenje memorijenedjelotvoranUčinkovit

Definicija polja

Niz je definiran kao skup određenog broja homogenih elemenata ili podataka. To znači da niz može sadržavati samo jednu vrstu podataka, ili sve cjeline, sve brojeve s pomičnim zarezom ili sve znakove. Izjava o nizu je sljedeća:
int a [10];
Gdje int određuje vrstu podataka ili tipove spremnika elemenata tipa. "A" je naziv niza, a broj naveden u uglatim zagradama je broj elemenata koje polje može pohraniti, to se također naziva veličina ili duljina polja.

Pogledajmo neke koncepte koje treba pamtiti o nizovima:

  • Pojedinačnim elementima niza može se pristupiti opisom imena polja, nakon čega slijedi indeks ili indeks (određivanje položaja elementa u nizu) unutar uglatih zagrada. Na primjer, za dohvaćanje 5. elementa polja, moramo napisati izjavu a [4].
  • U svakom slučaju elementi niza bit će pohranjeni u uzastopnoj memoriji.
  • Prvi element niza ima indeks nula [0]. To znači da će prvi i zadnji element biti specificirani kao [0], a [9].
  • Broj elemenata koji se mogu pohraniti u nizu, tj. Veličina niza ili njegova duljina daje se sljedećom jednadžbom:
    (gornja granica-donja granica) + 1
    Za gornji niz bi to bio (9-0) + 1 = 10. Gdje je 0 donja granica polja, a 9 je gornja granica polja.
  • Nizovi se mogu čitati ili pisati kroz petlju. Ako čitamo jednodimenzionalni niz, potrebno je jednu petlju za čitanje i drugu za pisanje (ispisivanje) niza, na primjer:
    a. Za čitanje niza
    za (i = 0; i <= 9; i ++)
    {scanf ("% d", & a [i]); }
    b. Za pisanje niza
    za (i = 0; i <= 9; i ++)
    {printf ("% d", a [i]); }
  • U slučaju 2-D polja, to bi zahtijevalo dvije petlje i slično n-dimenzionalni niz bi trebao imati petlje.

Operacije koje se izvode na nizovima su:

  1. Izrada niza
  2. Prelazak niza
  3. Umetanje novih elemenata
  4. Brisanje potrebnih elemenata.
  5. Izmjena elementa.
  6. Spajanje nizova

Primjer

Sljedeći program ilustrira čitanje i pisanje niza.

#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 ();
}

Definicija povezanog popisa

Povezani popis je određeni popis nekih elemenata podataka koji su povezani jedan s drugim. U ovom elementu svaki element ukazuje na sljedeći element koji predstavlja logički poredak. Svaki se element naziva čvor, koji ima dva dijela.

INFO dio koji pohranjuje informacije i POINTER koji ukazuje na sljedeći element. Kao što znate za pohranjivanje adrese, imamo jedinstvenu strukturu podataka u C nazvanoj pokazivačima. Stoga drugo polje popisa mora biti tipa pokazivača.

Vrste povezanih popisa su pojedinačno povezani, dvostruko povezani popis, kružni povezani popis, kružni dvostruki povezani popis.

Operacije izvršene na povezanom popisu su:

  1. Stvaranje
  2. poprijeko
  3. Umetanje
  4. Brisanje
  5. Pretraživanje
  6. povezan u lanac
  7. Prikaz

Primjer

Sljedeći isječak prikazuje stvaranje povezanog popisa:

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'));
}

Ključne razlike između polja i povezanog popisa

  1. Niz je struktura podataka koja sadrži skup sličnih tipova podataka, dok se Spojena lista smatra ne-primitivnom strukturom podataka koja sadrži skup neuređenih povezanih elemenata poznatih kao čvorovi.
  2. U nizu elementi pripadaju indeksima, tj. Ako želite ući u četvrti element, morate upisati naziv varijable s njegovim indeksom ili mjestom unutar kvadratne zagrade.
    U povezanom popisu, ipak, morate početi od glave i raditi svoj put kroz dok ne dođete do četvrtog elementa.
  3. Dok je pristup nizu elemenata brz, a Povezani popis uzima linearno vrijeme, to je prilično sporije.
  4. Operacije poput umetanja i brisanja u nizovima troše puno vremena. S druge strane, izvedba tih operacija u povezanim popisima je brza.
  5. Nizovi su fiksne veličine. Nasuprot tome, povezane liste su dinamične i fleksibilne i mogu se proširiti i smanjiti njegovu veličinu.
  6. U nizu se memorija dodjeljuje za vrijeme kompiliranja dok se na popisu povezuje dodijeli tijekom izvršenja ili izvođenja.
  7. Elementi se pohranjuju uzastopno u nizove, dok se pohranjuju nasumično u povezanim popisima.
  8. Zahtjev memorije je manji zbog stvarnih podataka pohranjenih unutar indeksa u nizu. Nasuprot tome, postoji potreba za više memorije u povezanim popisima zbog pohrane dodatnih sljedećih i prethodnih elemenata referenciranja.
  9. Osim toga, korištenje memorije je neučinkovito u nizu. Isto tako, iskoristivost memorije je učinkovita u nizu.

Zaključak

Array i Linked liste su vrste struktura podataka koje se razlikuju po svojoj strukturi, pristupu i metodama manipulacije, zahtjevima memorije i korištenju. I imaju posebne prednosti i nedostatke u odnosu na njegovu provedbu. Prema tome, bilo koji od njih može se koristiti prema potrebi.

Top