Skillnad mellan array och länkad lista

Författare: Laura McKinney
Skapelsedatum: 3 April 2021
Uppdatera Datum: 5 Maj 2024
Anonim
Skillnad mellan array och länkad lista - Teknologi
Skillnad mellan array och länkad lista - Teknologi

Innehåll


Den största skillnaden mellan Array och Länkad lista när det gäller deras struktur. Matriser är indexbaserat datastruktur där varje element associerat med ett index. Å andra sidan är Länkade listor beroende av referenser där varje nod består av data och referenser till föregående och nästa element.

I grund och botten är en matris en uppsättning av liknande dataobjekt lagrade i sekventiella minnesplatser under en gemensam rubrik eller ett variabelnamn.

Medan en länkad lista är en datastruktur som innehåller en sekvens av elementen där varje element är länkat till sitt nästa element. Det finns två fält i ett element i länkad lista. Det ena är datafältet, och det andra är länkfält. Datafältet innehåller det verkliga värdet som ska lagras och behandlas. Länkfältet innehåller dessutom adressen till nästa dataobjekt i den länkade listan. Adressen som används för att komma åt en viss nod kallas en pekare.


En annan betydande skillnad mellan en matris och länkad lista är att Array har en fast storlek och krävs att deklareras tidigare, men Länkad lista är inte begränsad till storlek och utvidgning och kontrakt under körning.

  1. Jämförelsediagram
  2. Definition
  3. Viktiga skillnader
  4. Slutsats

Jämförelsediagram

Grund för jämförelseArrayLänkad lista
GrundläggandeDet är en konsekvent uppsättning av ett fast antal dataobjekt.Det är en ordnad uppsättning som innehåller ett variabelt antal dataobjekt.
StorlekAnges under deklarationen.Du behöver inte ange; växa och krympa under körning.
Lagringstilldelning Elementplatsen tilldelas under kompileringstiden.Elementposition tilldelas under körtid.
Elementens ordning Lagras i följd Lagras slumpmässigt
Åtkomst till elementetDirekt eller slumpmässigt åtkomst, dvs. specificera matrisindex eller subskript.Sekvensiellt åtkomst, dvs Traverse som startar från den första noden i listan av pekaren.
Insättning och radering av elementLångsamt relativt när skiftning krävs.Enklare, snabbt och effektivt.
Sökande Binär sökning och linjär sökninglinjär sökning
Minne krävsmindre Mer
MinneutnyttjandeIneffektivEffektiv


Definition av Array

En matris definieras som en uppsättning av ett bestämt antal homogena element eller dataposter. Det betyder att en matris endast kan innehålla en typ av data, antingen alla heltal, alla flytpunktsnummer eller alla tecken. Förklaring om en matris är som följer:
int a;
Där int specificerar datatypen eller typelementen array lagrar. "A" är namnet på en matris, och antalet som anges i fyrkantiga parenteser är antalet element som en matris kan lagra, detta kallas också storlek eller längd på matrisen.

Låt oss titta på några av de koncept som ska komma ihåg om matriser:

  • De enskilda elementen i en matris kan nås genom att beskriva namnet på matrisen, följt av index eller subskript (bestämma platsen för elementet i matrisen) inuti de fyrkantiga parenteserna. För att till exempel hämta det femte elementet i matrisen måste vi skriva ett uttalande a.
  • I alla fall kommer elementen i en matris att lagras på en på varandra följande minnesplats.
  • Det allra första elementet i matrisen har index noll. Det betyder att det första och det sista elementet kommer att specificeras som en respektive.
  • Antalet element som kan lagras i en matris, dvs storleken på en matris eller dess längd anges av följande ekvation:
    (övre gräns-nedre gräns) + 1
    För ovanstående grupp skulle det vara (9-0) + 1 = 10. Där 0 är den nedre gränsen för matrisen och 9 är den övre gränsen för matrisen.
  • Matriser kan läsas eller skrivas genom slingan. Om vi ​​läser den endimensionella matrisen krävs det en slinga för läsning och annan för att skriva (ing) matrisen, till exempel:
    a. För att läsa en matris
    för (i = 0; i <= 9; i ++)
    {scanf ("% d", & a); }
    b. För att skriva en matris
    för (i = 0; i <= 9; i ++)
    {f ("% d", a); }
  • När det gäller en 2-D-grupp skulle den kräva två slingor och på liknande sätt skulle n-dimensionell matris behöva n slingor.

Operationer som utförs på matriser är:

  1. Skapande av matris
  2. Korsar en matris
  3. Insättning av nya element
  4. Radering av obligatoriska element.
  5. Ändring av ett element.
  6. Sammanslagning av matriser

Exempel

Följande program illustrerar läsningen och skrivningen av matrisen.

#inkludera
#inkludera
void main ()
{
int a, i;
f ("Ange matrisen");
för (i = 0; i <= 9; i ++)
{
scanf ("% d", & a);
}
f ("Ange matrisen");
för (i = 0; i <= 9; i ++)
{
f ("% d n", a);
}
getch ();
}

Definition av länkad lista

Länkad lista är en viss lista över vissa dataelement som är länkade till varandra. I detta pekar varje element på nästa element som representerar den logiska ordningen. Varje element kallas en nod som har två delar.

INFO-del som lagrar informationen och POINTER som pekar på nästa element. Som ni vet för lagring av adress har vi en unik datastruktur i C som kallas pekare. Därför måste listans andra fält vara en pekartyp.

Typer av länkade listor är singellänkad lista, dubbel länkad lista, cirkulär länkad lista, cirkulär dubbellänkad lista.

Verksamheter som utförs på länkad lista är:

  1. Skapande
  2. förflyttnings
  3. Införande
  4. Radering
  5. Sökande
  6. sammanlänkning
  7. Visa

Exempel

Följande fragment illustrerar skapandet av en länkad lista:

struktnod
{
int num;
stoppa noden * nästa;
}
start = NULL;
void create ()
{
typedef struct node NODE;
NODE * p, * q;
val av röding;
först = NULL;
do
{
p = (NODE *) malloc (sizeof (NODE));
f ("Ange dataposten n");
scanf ("% d", & p -> num);
if (p == NULL)
{
q = start;
medan (q -> nästa! = NULL)
{q = q -> nästa
}
p -> nästa = q -> nästa;
q -> = p;
}
annan
{
p -> nästa = start;
start = p;
}
f ("Vill du fortsätta (skriv y eller n)? n");
scanf ("% c", & val);
}
medan ((val == y) || (val == Y));
}

  1. En matris är datastrukturen innehåller en samling av dataelement av liknande typ medan den länkade listan betraktas som icke-primitiv datastruktur innehåller en samling av oordnade länkade element kända som noder.
  2. I matrisen tillhör elementen index, dvs om du vill komma in i det fjärde elementet måste du skriva variabelns namn med dess index eller plats inom den fyrkantiga konsolen.
    I en länkad lista måste du dock börja från huvudet och arbeta dig igenom tills du kommer till det fjärde elementet.
  3. Medan åtkomst till en elementuppsättning är snabb medan länkad lista tar linjär tid så är det ganska långsammare.
  4. Verksamheter som infogning och radering i matriser förbrukar mycket tid. Å andra sidan är resultatet av dessa operationer i länkade listor snabbt.
  5. Matriser är av fast storlek. Däremot är länkade listor dynamiska och flexibla och kan utöka och kontrahera sin storlek.
  6. I en matris tilldelas minne under kompileringstiden medan det i en länkad lista allokeras under körning eller körtid.
  7. Element lagras i följd i matriser medan det lagras slumpmässigt i länkade listor.
  8. Kravet på minne beror mindre på att faktiska data lagras i indexet i matrisen. I motsats till detta finns det ett behov av mer minne i Länkade listor på grund av lagring av ytterligare nästa och tidigare referenselement.
  9. Dessutom är minnesanvändning ineffektivt i matrisen. Omvänt är minnesanvändning effektivt i matrisen.

Slutsats

Array- och länkade listor är de typer av datastrukturer som skiljer sig åt i deras struktur, åtkomst- och manipuleringsmetoder, minnesbehov och användning. Och har speciell fördel och nackdel med dess implementering. Följaktligen kan endera användas efter behov.