Anbefalet, 2024

Redaktørens Valg

Forskel mellem Array og Linked List

Den største forskel mellem Array og Linked List hilsner deres struktur. Arrays er indeksbaseret datastruktur, hvor hvert element er forbundet med et indeks. På den anden side afhænger tilknyttet liste på referencer, hvor hver knude består af dataene og referencerne til det forrige og næste element.

Dybest set er et array et sæt af lignende dataobjekter, der er gemt i sekventielle hukommelsessteder under en fælles overskrift eller et variabelt navn.

Mens en tilknyttet liste er en datastruktur, der indeholder en sekvens af elementerne, hvor hvert element er knyttet til dets næste element. Der er to felter i et element af tilknyttet liste. Et er datafelt, og andet er linkfelt, datafelt indeholder den faktiske værdi, der skal gemmes og behandles. Desuden indeholder linkfeltet adressen til det næste datapunkt i den linkede liste. Den adresse, der bruges til at få adgang til en bestemt node, er kendt som en pointer.

En anden væsentlig forskel mellem en matrix og en tilknyttet liste er, at Array har en fast størrelse og skal angives tidligere, men Links List er ikke begrænset til størrelse og udvides og kontrakt under udførelse.

Sammenligningstabel

Grundlag for sammenligningArrayTilknyttet liste
GrundlæggendeDet er et konsekvent sæt af et fast antal dataelementer.Det er et bestilt sæt bestående af et variabelt antal dataposter.
StørrelseAngivet under erklæring.Ingen grund til at angive; vokse og krympe under udførelsen.
Storage AllocationElement placering er allokeret under kompileringstid.Elementposition tildeles under løbetiden.
Bestilling af elementerneOpbevares efter hinandenGemt tilfældigt
Adgang til elementetDirekte eller tilfældigt adgang, dvs. Angiv array indeks eller abonnement.Sekventielt adgang, dvs. Traverse startende fra den første node i listen med markøren.
Indsætning og sletning af elementLangsomt relativt som skift er påkrævet.Nemmere, hurtig og effektiv.
SøgerBinær søgning og lineær søgninglineær søgning
Hukommelse krævesmindreMere
HukommelsesudnyttelseIneffektivEffektiv

Definition af Array

Et array defineres som et sæt af et bestemt antal homogene elementer eller dataposter. Det betyder, at en matrix kun kan indeholde en type data, enten alle heltal, alle flydende punktnumre eller alle tegn. Erklæring af et array er som følger:
int a [10];
Hvor int specificerer datatypen eller typen elementer array butikker. "A" er navnet på et array, og tallet angivet inden for firkantede parenteser er antallet af elementer, som et array kan gemme, det kaldes også størrelsen eller længden af ​​arrayet.

Lad os se på nogle af de begreber, der skal huskes om arrays:

  • De enkelte elementer i et array kan fås ved at beskrive navnet på arrayet efterfulgt af indeks eller underskrift (bestemmelse af elementets placering i arrayet) inde i firkantede parenteser. For at hente 5. element af arrayet skal vi for eksempel skrive en erklæring a [4].
  • Under alle omstændigheder vil elementerne i et array blive lagret i en efterfølgende hukommelsesplacering.
  • Det allerførste element i arrayet har indeks nul [0]. Det betyder, at det første og sidste element vil blive specificeret som henholdsvis [0] og henholdsvis [9].
  • Antallet af elementer, der kan gemmes i en matrix, dvs. størrelsen på et array eller dets længde er givet ved følgende ligning:
    (øvre grænse-nedre grænse) + 1
    For ovenstående array ville det være (9-0) + 1 = 10. Hvor 0 er den nedre grænse af arrayet, og 9 er den øvre grænse af arrayet.
  • Arrays kan læses eller skrives gennem løkken. Hvis vi læser det endimensionelle array, kræver det en loop til læsning og andre til at skrive (udskrivning) arrayet, for eksempel:
    en. Til læsning af en matrix
    for (i = 0; i <= 9; i ++)
    {scanf ("% d", & a [i]); }
    b. Til at skrive en matrix
    for (i = 0; i <= 9; i ++)
    {printf ("% d", en [i]); }
  • I tilfælde af et 2-D array ville det kræve to loops og tilsvarende n-dimensional array ville have brug for n loops.

Operationer udført på arrays er:

  1. Oprettelse af array
  2. Traverserer en matrix
  3. Indsætning af nye elementer
  4. Sletning af nødvendige elementer.
  5. Ændring af et element.
  6. Fusion af arrays

Eksempel

Følgende program illustrerer læsning og skrivning af arrayet.

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

Definition af tilknyttet liste

Tilknyttet liste er en særlig liste over nogle dataelementer knyttet til en anden. I dette peger hvert element på det næste element, der repræsenterer den logiske bestilling. Hvert element kaldes en node, som har to dele.

INFO del, der gemmer informationen og POINTER som peger på det næste element. Som du ved for at lagre adressen, har vi enestående datastrukturer i C-kaldte pointers. Derfor skal det andet felt i listen være en pegertype.

Typer af tilknyttede lister er Singlelinket liste, Liste med dobbelt link, Cirkulærlinket liste, Cirkulær dobbeltkoblet liste.

Operationer udført på Linked List er:

  1. Skabelse
  2. Kørsel
  3. Indsættelse
  4. Sletning
  5. Søger
  6. sammenkædning
  7. Skærm

Eksempel

Følgende uddrag illustrerer oprettelsen af ​​en linket liste:

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

Nøgleforskelle mellem Array og Linked List

  1. Et array er datastrukturen indeholder en samling af lignende type dataelementer, mens den tilknyttede liste betragtes som ikke-primitiv datastruktur indeholder en samling uordnede sammenknyttede elementer kendt som noder.
  2. I matricen hører elementerne til indekser, dvs. hvis man ønsker at komme ind i det fjerde element, skal man skrive det variable navn med sit indeks eller placering indenfor firkantbøjlen.
    På en tilknyttet liste skal du dog starte fra hovedet og arbejde dig igennem, indtil du kommer til det fjerde element.
  3. Mens adgang til et element array er hurtig, mens Linked List tager lineær tid så er det ret lidt langsommere.
  4. Operationer som indsættelse og sletning i arrays forbruger meget tid. På den anden side er udførelsen af ​​disse operationer i tilknyttede lister hurtig.
  5. Arrays er af fast størrelse. Tilknyttet lister er derimod dynamiske og fleksible og kan udvide og indgå i kontraktens størrelse.
  6. I et array er hukommelse tildelt under kompileringstid, mens den i en tilknyttet liste er tildelt under udførelse eller runtime.
  7. Elementer gemmes efter hinanden i arrays, mens det er gemt tilfældigt i tilknyttede lister.
  8. Kravet om hukommelse er mindre, fordi de faktiske data lagres inde i indekset i arrayet. I modsætning hertil er der behov for mere hukommelse i tilknyttede lister på grund af opbevaring af yderligere næste og tidligere referenceelementer.
  9. Desuden er hukommelsesudnyttelsen ineffektiv i arrayet. Omvendt er hukommelsesudnyttelse effektiv i arrayet.

Konklusion

Array og Linked Lists er typer af datastrukturer forskelligt i deres struktur, adgang og manipulation metoder, hukommelseskrav og udnyttelse. Og har særlig fordel og ulempe ved gennemførelsen. Som følge heraf kan man enten bruge som efter behov.

Top