Rozdiel medzi poľom a prepojeným zoznamom
Obsah
- Porovnávacia tabuľka
- Definícia poľa
- Pozrime sa na niektoré z konceptov, ktoré treba pamätať na polia:
- Operácie vykonávané na poliach sú:
- príklad
- Definícia prepojeného zoznamu
- Operácie vykonávané v prepojenom zozname sú:
- príklad
- záver
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.
- Porovnávacia tabuľka
- definícia
- Kľúčové rozdiely
- záver
Porovnávacia tabuľka
Základ pre porovnanie | rad | Prepojený 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 prvku | Priamy 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 prvku | Pomerne pomaly, ako je potrebné radenie. | Ľahší, rýchly a efektívny. |
vyhľadávanie | Binárne a lineárne vyhľadávanie | lineárne vyhľadávanie |
Vyžaduje sa pamäť | menej | viac |
Využitie pamäte | neúč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ú:
- Vytvorenie poľa
- Prechádzanie po poli
- Vkladanie nových prvkov
- Vymazanie požadovaných prvkov.
- Modifikácia prvku.
- 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ú:
- stvorenia
- pojazdový
- vloženie
- vymazanie
- vyhľadávanie
- zreťazenie
- 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));
}
- 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.
- 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. - 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ší.
- 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.
- Polia majú pevnú veľkosť. Naopak, prepojené zoznamy sú dynamické a flexibilné a môžu sa rozširovať a zmenšovať jeho veľkosť.
- V poli je pamäť priradená počas kompilácie, zatiaľ čo v prepojenom zozname je alokovaná počas vykonávania alebo behu.
- Prvky sa ukladajú postupne v poliach, zatiaľ čo sa náhodne ukladajú do prepojených zoznamov.
- 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.
- 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.