Rozdíl mezi polem a propojeným seznamem
Obsah
- Srovnávací tabulka
- Definice pole
- Podívejme se na některé koncepty, které je třeba pamatovat na pole:
- Operace prováděné na polích jsou:
- Příklad
- Definice propojeného seznamu
- Operace prováděné na propojeném seznamu jsou:
- Příklad
- Závěr
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.
- Srovnávací tabulka
- Definice
- Klíčové rozdíly
- Závěr
Srovnávací tabulka
Základ pro srovnání | Pole | Spojový 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. |
Velikost | Upř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 prvku | Pří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í prvku | Pomalu 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ěti | Neefektivní | Úč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:
- Vytvoření pole
- Procházení pole
- Vložení nových prvků
- Vymazání požadovaných prvků.
- Modifikace prvku.
- 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:
- Stvoření
- Traversing
- Vložení
- Vypuštění
- Vyhledávání
- Zřetězení
- 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));
}
- 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.
- 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. - Zatímco přístup k poli prvků je rychlý, zatímco propojený seznam zabírá lineární čas, je to trochu pomalejší.
- 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ý.
- Pole mají pevnou velikost. Naopak propojené seznamy jsou dynamické a flexibilní a mohou se rozšiřovat a stahovat jeho velikost.
- 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.
- Prvky jsou ukládány postupně v polích, zatímco jsou náhodně ukládány do propojených seznamů.
- 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ů.
- 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.