Rozdíl mezi polem a propojeným seznamem

Autor: Laura McKinney
Datum Vytvoření: 3 Duben 2021
Datum Aktualizace: 23 Duben 2024
Anonim
Rozdíl mezi polem a propojeným seznamem - Technologie
Rozdíl mezi polem a propojeným seznamem - Technologie

Obsah


Hlavní rozdíl mezi Pole a Spojový seznam jde o jejich strukturu. Pole jsou založeno na indexu struktura dat, kde každý prvek je spojen s indexem. Na druhou stranu se propojený seznam spoléhá na Reference kde každý uzel sestává z dat a odkazů na předchozí a další prvek.

Pole je v podstatě sada podobných datových objektů uložených v sekvenčních paměťových umístěních pod společným nadpisem nebo názvem proměnné.

Zatímco propojený seznam je datová struktura, která obsahuje posloupnost prvků, kde každý prvek je spojen s jeho dalším prvkem. V prvku propojeného seznamu jsou dvě pole. Jedním je datové pole a druhým je odkazové pole, datové pole obsahuje skutečnou hodnotu, která má být uložena a zpracována. Pole odkazu dále obsahuje adresu další datové položky v propojeném seznamu. Adresa použitá pro přístup k určitému uzlu se nazývá ukazatel.


Dalším významným rozdílem mezi maticí a propojeným seznamem je to, že pole má pevnou velikost a musí být deklarováno dříve, ale propojený seznam není během provádění omezen na velikost a rozšíření a uzavření smlouvy.

  1. Srovnávací tabulka
  2. Definice
  3. Klíčové rozdíly
  4. Závěr

Srovnávací tabulka

Základ pro srovnáníPoleSpojový seznam
ZákladníJe to konzistentní sada pevného počtu datových položek.Jedná se o uspořádanou sadu obsahující proměnný počet datových položek.
VelikostUpřesněno během prohlášení.Není třeba specifikovat; během provádění rostou a zmenšují se.
Přidělení úložiště Umístění prvku je přiděleno během kompilačního času.Pozice prvku je přiřazena během doby běhu.
Pořadí prvků Ukládáno postupně Uloženo náhodně
Přístup k prvkuPřímý nebo náhodný přístup, tj. Zadejte index pole nebo index.Sekvenčně přístupný, tj. Traverse začínající z prvního uzlu v seznamu ukazatelem.
Vložení a odstranění prvkuPomalu relativně, jak je vyžadováno řazení.Snadnější, rychlejší a efektivnější.
Vyhledávání Binární a lineární vyhledávánílineární vyhledávání
Vyžaduje paměťméně Více
Využití pamětiNeefektivníÚčinný


Definice pole

Pole je definováno jako sada určitého počtu homogenních prvků nebo datových položek. To znamená, že pole může obsahovat pouze jeden typ dat, buď celá čísla, všechna čísla s plovoucí desetinnou čárkou, nebo všechny znaky. Prohlášení o poli je následující:
int a;
Kde int specifikuje úložiště datových typů nebo typů prvků. „A“ je název pole a číslo uvedené v hranatých závorkách je počet prvků, které pole může uložit, nazývá se také velikost nebo délka pole.

Podívejme se na některé koncepty, které je třeba pamatovat na pole:

  • K jednotlivým prvkům pole lze přistupovat pomocí popisu názvu pole následovaného indexem nebo indexem (určujícím umístění prvku v poli) uvnitř hranatých závorek. Například pro načtení 5. prvku pole musíme napsat příkaz a.
  • V každém případě budou prvky pole uloženy v po sobě jdoucím paměťovém umístění.
  • Úplně první prvek pole má index nula. To znamená, že první a poslední prvek bude specifikován jako a, respektive.
  • Počet prvků, které lze uložit do pole, tj. Velikost pole nebo jeho délka, je dána následující rovnicí:
    (horní a dolní mez) + 1
    Pro výše uvedené pole by to bylo (9-0) + 1 = 10. Kde 0 je dolní hranice pole a 9 je horní hranice pole.
  • Pole lze číst nebo zapisovat prostřednictvím smyčky. Pokud čteme jednorozměrné pole, vyžaduje jednu smyčku pro čtení a druhou pro zápis (ing) pole, například:
    A. Pro čtení pole
    pro (i = 0; i <= 9; i ++)
    {scanf („% d“, & a); }
    b. Pro psaní pole
    pro (i = 0; i <= 9; i ++)
    {f („% d“, a); }
  • V případě dvojrozměrného pole by to vyžadovalo dvě smyčky a podobně n-rozměrné pole by vyžadovalo n smyček.

Operace prováděné na polích jsou:

  1. Vytvoření pole
  2. Procházení pole
  3. Vložení nových prvků
  4. Vymazání požadovaných prvků.
  5. Modifikace prvku.
  6. Sloučení polí

Příklad

Následující program ilustruje čtení a zápis pole.

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

Definice propojeného seznamu

Propojený seznam je konkrétní seznam některých datových prvků spojených navzájem. V tomto každý prvek ukazuje na další prvek, který představuje logické uspořádání. Každý prvek se nazývá uzel, který má dvě části.

INFO část, která ukládá informace a POINTER, který ukazuje na další prvek. Jak víte, pro ukládání adresy máme v datovém bloku C jedinečné ukazatele dat, které se nazývají ukazatele. Druhé pole seznamu tedy musí být typu ukazatele.

Typy propojených seznamů jsou Seznam s jednoduchým propojením, Seznam s dvojitým propojením, Seznam s kruhovým propojením, Kruhový s dvojitým propojením.

Operace prováděné na propojeném seznamu jsou:

  1. Stvoření
  2. Traversing
  3. Vložení
  4. Vypuštění
  5. Vyhledávání
  6. Zřetězení
  7. Zobrazit

Příklad

Následující úryvek ilustruje vytvoření propojeného seznamu:

strukturní uzel
{
int num;
štukový uzel * další;
}
start = NULL;
neplatné vytvoření ()
{
strukturovaný uzel typedef NODE;
NODE * p, * q;
char volba;
první = NULL;
dělat
{
p = (NODE *) malloc (velikost (NODE));
f ("Zadejte datovou položku n");
scanf ("% d", & p -> num);
pokud (p == NULL)
{
q = začátek;
while (q -> další! = NULL)
{q = q -> další
}
p -> další = q -> další;
q -> = p;
}
jiný
{
p -> další = start;
start = p;
}
f ("Chcete pokračovat (zadejte y nebo n)? n");
scanf ("% c", & volba);
}
while ((výběr == y) || (výběr == Y));
}

  1. Pole je datová struktura, která obsahuje kolekci datových prvků podobného typu, zatímco propojený seznam je považován za nepr primitivní datovou strukturu, která obsahuje kolekci neuspořádaných spojených prvků známých jako uzly.
  2. V poli prvky patří do indexů, tj. Pokud se chcete dostat do čtvrtého prvku, musíte napsat název proměnné s jeho indexem nebo umístěním do hranaté závorky.
    V propojeném seznamu však musíte začít od hlavy a propracovávat se, dokud se nedostanete ke čtvrtému prvku.
  3. Zatímco přístup k poli prvků je rychlý, zatímco propojený seznam zabírá lineární čas, je to trochu pomalejší.
  4. Operace jako vkládání a mazání v polích zabírají spoustu času. Na druhé straně je výkon těchto operací v propojených seznamech rychlý.
  5. Pole mají pevnou velikost. Naopak propojené seznamy jsou dynamické a flexibilní a mohou se rozšiřovat a stahovat jeho velikost.
  6. V poli je paměť přiřazena během kompilace, zatímco v propojeném seznamu je přidělena během provádění nebo běhu.
  7. Prvky jsou ukládány postupně v polích, zatímco jsou náhodně ukládány do propojených seznamů.
  8. Požadavek paměti je menší kvůli skutečným datům uloženým v indexu v poli. Na rozdíl od toho existuje potřeba více paměti ve spojených seznamech kvůli uložení dalších dalších a předchozích referenčních prvků.
  9. Kromě toho je využití paměti v poli neefektivní. Naopak využití paměti je v poli efektivní.

Závěr

Seznamy Array a Connected jsou typy datových struktur, které se liší svou strukturou, způsoby přístupu a manipulace, požadavky na paměť a využití. A mají zvláštní výhodu a nevýhodu oproti jeho provádění. V důsledku toho může být jeden z nich použit podle potřeby.