Rozdiel medzi poľom a prepojeným zoznamom

Autor: Laura McKinney
Dátum Stvorenia: 3 Apríl 2021
Dátum Aktualizácie: 7 Smieť 2024
Anonim
Rozdiel medzi poľom a prepojeným zoznamom - Technológie
Rozdiel medzi poľom a prepojeným zoznamom - Technológie

Obsah


Hlavný rozdiel medzi rad a Prepojený zoznam ich štruktúra. Polia sú založený na indexe dátová štruktúra, kde každý prvok súvisí s indexom. Na druhej strane sa spolieha zoznam referencie kde každý uzol pozostáva z údajov a odkazov na predchádzajúci a nasledujúci prvok.

V zásade je pole súbor podobných dátových objektov uložených v postupných pamäťových umiestneniach pod spoločným nadpisom alebo názvom premennej.

Zatiaľ čo prepojený zoznam je dátová štruktúra, ktorá obsahuje postupnosť prvkov, kde každý prvok je prepojený so svojím ďalším prvkom. V prvku prepojeného zoznamu sú dve polia. Jedným z nich je dátové pole a druhým je prepojovacie pole. Dátové pole obsahuje skutočnú hodnotu, ktorá sa má uložiť a spracovať. Pole prepojenia ďalej obsahuje adresu nasledujúcej údajovej položky v prepojenom zozname. Adresa použitá na prístup k určitému uzlu sa nazýva ukazovateľ.


Ďalším významným rozdielom medzi poľom a prepojeným zoznamom je to, že pole má pevnú veľkosť a musí sa pred tým deklarovať, ale prepojený zoznam nie je počas vykonávania obmedzený na veľkosť a rozšírenie a kontrakt.

  1. Porovnávacia tabuľka
  2. definícia
  3. Kľúčové rozdiely
  4. záver

Porovnávacia tabuľka

Základ pre porovnanieradPrepojený zoznam
základnéJe to konzistentný súbor pevného počtu dátových položiek.Je to usporiadaná množina obsahujúca variabilný počet údajových položiek.
veľkosťŠpecifikované počas vyhlásenia.Nie je potrebné špecifikovať; počas vykonávania rásť a zmenšovať sa.
Pridelenie úložiska Umiestnenie prvku je pridelené počas kompilácie.Pozícia prvku je priradená počas doby chodu.
Poradie prvkov Skladované postupne Skladované náhodne
Prístup k prvkuPriamy alebo náhodný prístup, t. J. Uveďte index poľa alebo index.Postupne prístupné, t. J. Posúvanie začínajúce ukazovateľom od prvého uzla v zozname.
Vloženie a vymazanie prvkuPomerne pomaly, ako je potrebné radenie.Ľahší, rýchly a efektívny.
vyhľadávanie Binárne a lineárne vyhľadávanielineárne vyhľadávanie
Vyžaduje sa pamäťmenej viac
Využitie pamäteneúčinnýúčinný


Definícia poľa

Pole je definované ako množina určitého počtu homogénnych prvkov alebo údajových položiek. To znamená, že pole môže obsahovať iba jeden typ údajov, buď celé čísla, všetky čísla s plávajúcou desatinnou čiarkou alebo všetky znaky. Vyhlásenie o súbore je nasledovné:
int a;
Kde int špecifikuje pole typov údajov alebo typov prvkov. „A“ je názov poľa a číslo uvedené v hranatých zátvorkách je počet prvkov, ktoré pole môže uložiť, nazýva sa to aj veľkosť alebo dĺžka poľa.

Pozrime sa na niektoré z konceptov, ktoré treba pamätať na polia:

  • K jednotlivým prvkom poľa sa dá získať tak, že sa v hranatých zátvorkách uvedie názov poľa, za ktorým nasleduje index alebo index (určenie umiestnenia prvku v poli). Napríklad, na získanie piateho prvku poľa musíme napísať príkaz a.
  • V každom prípade sa prvky poľa uložia na po sebe idúce miesto v pamäti.
  • Úplne prvý prvok poľa má index nula. To znamená, že prvý a posledný prvok bude špecifikovaný ako a, respektíve.
  • Počet prvkov, ktoré môžu byť uložené v poli, t. J. Veľkosť poľa alebo jeho dĺžka je daná nasledujúcou rovnicou:
    (horná hranica - dolná hranica) + 1
    Pre vyššie uvedené pole by to bolo (9-0) + 1 = 10. Kde 0 je dolná hranica poľa a 9 je horná hranica poľa.
  • Polia sa dajú čítať alebo zapisovať cez slučku. Ak čítame jednorozmerné pole, vyžaduje si jednu slučku na čítanie a druhú na zápis (ing) poľa, napríklad:
    a. Na čítanie poľa
    pre (i = 0; i <= 9; i ++)
    {scanf („% d“, & a); }
    b. Na písanie poľa
    pre (i = 0; i <= 9; i ++)
    {f („% d“, a); }
  • V prípade dvojrozmerného poľa by to vyžadovalo dve slučky a podobne n-rozmerné pole by potrebovalo n slučiek.

Operácie vykonávané na poliach sú:

  1. Vytvorenie poľa
  2. Prechádzanie po poli
  3. Vkladanie nových prvkov
  4. Vymazanie požadovaných prvkov.
  5. Modifikácia prvku.
  6. Zlúčenie polí

príklad

Nasledujúci program ilustruje čítanie a zápis do poľa.

#include
#include
neplatné hlavné ()
{
int a, i;
f („Zadajte pole“);
pre (i = 0; i <= 9; i ++)
{
scanf ("% d", & a);
}
f („Zadajte pole“);
pre (i = 0; i <= 9; i ++)
{
f ("% d n", a);
}
getch ();
}

Definícia prepojeného zoznamu

Prepojený zoznam je konkrétny zoznam niektorých dátových prvkov spojených navzájom. V tomto bode každý prvok ukazuje na ďalší prvok, ktorý predstavuje logické usporiadanie. Každý prvok sa nazýva uzol, ktorý má dve časti.

INFO časť, ktorá ukladá informácie a POINTER, ktorý ukazuje na ďalší prvok. Ako viete pre ukladanie adresy, v C sa nachádzajú jedinečné dátové štruktúry nazývané ukazovatele. Druhé pole zoznamu preto musí byť typu ukazovateľa.

Typy prepojených zoznamov sú Zoznam s jednoduchým prepojením, Zoznam s dvojitým prepojením, Zoznam s kruhovým prepojením, Kruhový s dvojitým prepojením.

Operácie vykonávané v prepojenom zozname sú:

  1. stvorenia
  2. pojazdový
  3. vloženie
  4. vymazanie
  5. vyhľadávanie
  6. zreťazenie
  7. zobraziť

príklad

Nasledujúci úryvok ilustruje vytvorenie prepojeného zoznamu:

štruktúrovaný uzol
{
int num;
štukový uzol * nasledujúci;
}
začiatok = NULL;
neplatné vytvorenie ()
{
štruktúrovaný uzol typedef NODE;
NODE * p, * q;
char výber;
prvý = NULL;
robiť
{
p = (NODE *) malloc (veľkosť (NODE));
f ("Zadajte údajovú položku n");
scanf ("% d", & p -> num);
ak (p == NULL)
{
q = začiatok;
while (q -> next! = NULL)
{q = q -> ďalšie
}
p -> ďalší = q -> ďalší;
q -> = p;
}
inak
{
p -> ďalší = začiatok;
štart = p;
}
f ("Chcete pokračovať (napíšte y alebo n)? n");
scanf ("% c", & výber);
}
while ((výber == y) || (výber == Y));
}

  1. Pole je dátová štruktúra, ktorá obsahuje kolekciu dátových prvkov podobného typu, zatiaľ čo prepojený zoznam sa považuje za nejprimitívnu dátovú štruktúru, ktorá obsahuje kolekciu neusporiadaných spojených prvkov známych ako uzly.
  2. V poli prvky patria do indexov, t. J. Ak sa chcete dostať do štvrtého prvku, musíte napísať názov premennej s jej indexom alebo umiestnením do hranatej zátvorky.
    V prepojenom zozname však musíte začať od hlavy a prepracovať sa, až kým sa nedostanete k štvrtému prvku.
  3. Aj keď je prístup do poľa prvkov rýchly, zatiaľ čo zoznam odkazov vyžaduje lineárny čas, takže je o niečo pomalší.
  4. Operácie ako vkladanie a mazanie v poliach zaberajú veľa času. Na druhej strane je výkon týchto operácií v prepojených zoznamoch rýchly.
  5. Polia majú pevnú veľkosť. Naopak, prepojené zoznamy sú dynamické a flexibilné a môžu sa rozširovať a zmenšovať jeho veľkosť.
  6. V poli je pamäť priradená počas kompilácie, zatiaľ čo v prepojenom zozname je alokovaná počas vykonávania alebo behu.
  7. Prvky sa ukladajú postupne v poliach, zatiaľ čo sa náhodne ukladajú do prepojených zoznamov.
  8. Požiadavka na pamäť je menšia v dôsledku skutočných údajov uložených v indexe v poli. Naopak, v prepojených zoznamoch je potrebné viac pamäte kvôli ukladaniu ďalších ďalších a predchádzajúcich referenčných prvkov.
  9. Okrem toho je využitie pamäte v poli neefektívne. Naopak, využitie pamäte v poli je efektívne.

záver

Polia a prepojené zoznamy sú typy dátových štruktúr, ktoré sa líšia svojou štruktúrou, metódami prístupu a manipulácie, požiadavkami na pamäť a využitím. A majú osobitnú výhodu a nevýhodu v súvislosti s jeho vykonávaním. V dôsledku toho sa podľa potreby môže použiť ktorýkoľvek z nich.