Ajánlott, 2024

Szerkesztő Választása

Az Array és a Linked List közötti különbség

A fő különbség az Array és a Linked lista között a struktúrájuk tekintetében. A tömbök indexalapú adatstruktúra, ahol minden egyes elem egy indexhez kapcsolódik. Másrészről a hivatkozott lista hivatkozásokra támaszkodik, ahol minden egyes csomópont az adatokból és az előző és a következő elemre való hivatkozásokból áll.

Alapvetően egy tömb egy sor hasonló adatobjektumot tartalmaz, amelyek soros memóriahelyekben vannak tárolva egy közös cím vagy változó neve alatt.

Míg egy összekapcsolt lista olyan adatszerkezet, amely az elemek azon szekvenciáját tartalmazza, ahol minden elem kapcsolódik a következő eleméhez. A hivatkozott lista egyik elemében két mező található. Az egyik az Adat mező, a másik pedig a mező, az Adat mező tartalmazza a tárolni és feldolgozni kívánt tényleges értéket. Továbbá, a hivatkozásmező a csatolt listában a következő adatelem címét tartalmazza. Az adott csomópont eléréséhez használt címet mutatónak nevezik.

Egy másik fontos különbség a tömb és a csatolt lista között az, hogy az Array-nek fix mérete van, és előzetes bejelentésre van szükség, de a Kapcsolódó lista nem korlátozódik a méretre és bővítésre és a végrehajtás során.

Összehasonlító táblázat

Az összehasonlítás alapjaSorKapcsolódó lista
AlapvetőEz egy meghatározott számú adategység következetes készlete.Ez egy rendezett készlet, amely változó számú adatelemet tartalmaz.
MéretA nyilatkozat alatt megadott.Nem szükséges meghatározni; növekedés és zsugorodás a végrehajtás során.
Tárolási allokációAz elem helyét a fordítási idő alatt osztják ki.Az elem pozíciója a futási idő alatt van hozzárendelve.
Az elemek rendjeFolyamatosan tárolvaVéletlenszerűen tárolva
Hozzáférés az elemhezKözvetlen vagy véletlenszerűen hozzáférhető, azaz Adja meg a tömbindexet vagy az indexet.Szekvenciálisan elérve, vagyis a lista első csomópontjáról indulva a mutatóval.
Elem beillesztése és törléseLassú, mint a váltás szükséges.Könnyebb, gyorsabb és hatékonyabb.
kutatóBináris keresés és lineáris kereséslineáris keresés
A memória szükségesKevésbéTöbb
MemóriahasználatHatástalanHatékony

Array meghatározása

A tömb egy meghatározott számú homogén elem vagy adatelem halmaza. Ez azt jelenti, hogy egy tömb csak egy típusú adatot tartalmazhat, mind az egész számokat, mind a lebegőpontos számokat, vagy az összes karaktert. Egy tömb deklarációja a következő:
int a [10];
Ahol int határozza meg az adattípust vagy a típusú elemek tömb üzleteit. Az „a” egy tömb neve, és a szögletes zárójelben megadott szám az elemek száma, amelyeket egy tömb el tud tárolni, ezt a tömb méretének vagy hosszának is nevezik.

Nézzük meg a tömbökre emlékezendő néhány fogalmat:

  • A tömb egyéni elemeit a tömb nevének leírásával lehet elérni, majd a szögletes zárójelben az index vagy az index (a tömbben lévő elem helyét meghatározva) leírása. Például, a tömb ötödik elemének letöltéséhez írnunk kell egy nyilatkozatot a [4].
  • A tömb elemeit minden esetben egy egymást követő memóriahelyen tároljuk.
  • A tömb első eleme nulla [0]. Ez azt jelenti, hogy az első és az utolsó elem [0] és a [9] lesz.
  • A tömbben tárolható elemek számát, azaz egy tömb méretét vagy hosszát az alábbi egyenlet adja meg:
    (felső határ alsó határ) + 1
    A fenti tömb esetében (9-0) + 1 = 10 lenne. Ahol 0 a tömb alsó határa, és 9 a tömb felső határa.
  • A tömbök a hurokon keresztül olvashatók vagy írhatók. Ha elolvasjuk az egydimenziós tömböt, akkor egy hurkot igényel az olvasáshoz és más a tömb írásához (nyomtatásához), például:
    a. Egy tömb olvasásához
    (i = 0; i <= 9; i ++)
    {scanf („% d”, & a [i]); }
    b. Egy tömb írásához
    (i = 0; i <= 9; i ++)
    {printf („% d”, a [i]); }
  • Egy 2-D tömb esetében két hurkot igényelne, és az n-dimenziós tömbnek n-hurokra is szüksége lenne.

A tömbökön végrehajtott műveletek:

  1. A tömb létrehozása
  2. Egy tömb áthaladása
  3. Új elemek beillesztése
  4. A szükséges elemek törlése.
  5. Egy elem módosítása.
  6. A tömbök egyesítése

Példa

A következő program a tömb olvasását és írását mutatja be.

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

A kapcsolt lista meghatározása

A hivatkozott lista egyes adatelemek egy listája, amelyek egymáshoz kapcsolódnak. Ebben minden egyes elem a következő elemre mutat, amely a logikai sorrendet képviseli. Minden elemet csomópontnak nevezünk, amely két részből áll.

Az INFO rész, amely a következő elemre mutató információt és POINTER-t tárolja. Amint tudod, hogy tárolod a címet, C-ben egyedi adatstruktúrák vannak, amelyeket mutatóknak nevezünk. Ezért a lista második mezőjének mutató típusúnak kell lennie.

A kapcsolt listák típusai az Egyszerűen kapcsolt lista, Kétszeres összekapcsolt lista, Körkörös hivatkozás, Körkörös kettős összekapcsolt lista.

A kapcsolt listán végrehajtott műveletek:

  1. Teremtés
  2. Mozgás
  3. beszúrás
  4. Törlés
  5. kutató
  6. láncolat
  7. Kijelző

Példa

A következő részlet a kapcsolt lista létrehozását mutatja be:

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

Az Array és a Linked List közötti legfontosabb különbségek

  1. Egy tömb az adatszerkezet hasonló típusú adatelemeket tartalmaz, míg a Kapcsolódó lista nem primitív adatszerkezetnek minősül, amely nem csatolt elemeket tartalmaz.
  2. A tömbben az elemek indexekhez tartoznak, azaz ha a negyedik elembe szeretne bejutni, akkor a változó nevét a szögletes zárójelben kell elhelyezni indexével vagy helyével.
    Egy összekapcsolt listában azonban a fejről kell indulnia, és végig kell dolgoznia, amíg el nem éri a negyedik elemet.
  3. Miközben az elemcsoporthoz való hozzáférés gyors, míg a Kapcsolódó lista lineáris időt vesz igénybe, elég lassabb.
  4. Az olyan műveletek, mint a beillesztés és a tömbök törlése, sok időt vesz igénybe. Másrészről ezeknek a műveleteknek a teljesítménye a Kapcsolódó listákban gyors.
  5. A tömbök fix méretűek. Ezzel szemben a Kapcsolódó listák dinamikusak és rugalmasak, és kiterjeszthetik és összehangolhatják méretüket.
  6. Egy tömbben a memóriát a fordítási idő alatt hozzárendeljük, míg egy összekapcsolt listában a végrehajtás vagy futás közben kerül sor.
  7. Az elemek egymás után tárolódnak a tömbökben, míg az összekapcsolt listákban véletlenszerűen tárolják.
  8. A memória igénye kisebb, mivel a tényleges adatok az indexben tárolódnak a tömbben. Ezzel ellentétben szükség van több memória tárolására a kapcsolódó listákban a következő további és korábbi hivatkozási elemek tárolása miatt.
  9. Emellett a memória kihasználtsága a tömbben nem hatékony. Ezzel szemben a memóriahasználat hatékony a tömbben.

Következtetés

Az Array és a Linked listák az adatszerkezetek típusai, amelyek szerkezete, hozzáférési és manipulációs módszerei, memóriaigénye és felhasználása különböznek. Különösen előnyös és hátrányos a végrehajtása. Következésképpen bármelyik igényt igény szerint lehet használni.

Top