Diferència entre matriu i llista enllaçada

Autora: Laura McKinney
Data De La Creació: 3 Abril 2021
Data D’Actualització: 7 Ser Possible 2024
Anonim
Diferència entre matriu i llista enllaçada - Tecnologia
Diferència entre matriu i llista enllaçada - Tecnologia

Content


La major diferència entre Matriu i Llista d'enllaç pel que fa a la seva estructura. Les matrius són basat en índex estructura de dades on cada element està associat amb un índex. D'altra banda, la llista d'enllaços es basa referències on cada node consta de les dades i les referències a l’element anterior i següent.

Bàsicament, una matriu és un conjunt d'objectes de dades similars emmagatzemats en ubicacions de memòria seqüencial sota un encapçalament comú o un nom variable.

Mentre que una llista enllaçada és una estructura de dades que conté una seqüència dels elements on cada element està enllaçat al següent element. Hi ha dos camps en un element de llista enllaçada. Un és el camp Data, i l’altre el camp d’enllaç, el camp Data conté el valor real que s’hauran d’emmagatzemar i processar. A més, el camp d'enllaç conté l'adreça del següent element de la llista d'enllaços. L'adreça que s'utilitza per accedir a un determinat node es coneix com a punter.


Una altra diferència significativa entre una matriu i una llista enllaçada és que Array té una mida fixa i s'ha de declarar prèviament, però la Llista enllaçada no es restringeix a la mida i s'amplia i es contracta durant l'execució.

  1. Gràfic de comparació
  2. Definició
  3. Diferències claus
  4. Conclusió

Gràfic de comparació

Bases per a la comparacióMatriuLlista d'enllaç
BàsicÉs un conjunt consistent d’un nombre fix d’elements de dades.És un conjunt ordenat que inclou un nombre variable d’elements de dades.
MidaEspecificada durant la declaració.No cal especificar; créixer i reduir-se durant l’execució.
Assignació d'emmagatzematge La ubicació dels elements s'assigna durant el temps de compilació.La posició de l'element s'assigna durant el temps d'execució.
Ordre dels elements Emmagatzemada consecutivament Emmagatzemada aleatòriament
Accés a l'elementAccés directe o aleatori, és a dir, especifiqueu l'índex o el subíndex de la matriu.S'hi va accedir seqüencialment, és a dir, a través del punter a partir del primer node de la llista.
Inserció i supressió de l'elementLentament relativament a mesura que cal desplaçar.Més fàcil, ràpid i eficaç.
Cercant Cerca binària i cerca linealcerca lineal
Memòria necessàriamenys Més
Utilització de la memòriaIneficaçEficient


Definició de Array

Una matriu es defineix com un conjunt d'un nombre definit d'elements o elements de dades homogenis. Significa que una matriu pot contenir un tipus de dades només, tots els nombres enters, tots els números de coma flotant o tots els caràcters. La declaració d'una matriu és la següent:
int a;
On int especifica el tipus de dades o el tipus d'elements que emmagatzema la matriu. "A" és el nom d'una matriu i el nombre especificat dins dels claudàtors és el nombre d'elements que pot emmagatzemar una matriu, també s'anomena mida o longitud de la matriu.

Vegem alguns dels conceptes a recordar sobre matrius:

  • Es pot accedir als elements individuals d'una matriu descrivint el nom de la matriu, seguit d'índex o subíndex (determinant la ubicació de l'element de la matriu) dins dels claudàtors. Per exemple, per recuperar el cinquè element de la matriu, hem d’escriure una declaració a.
  • En qualsevol cas, els elements d'una matriu s'emmagatzemaran en una ubicació de memòria consecutiva.
  • El primer element de la matriu té un índex zero. Significa que el primer i últim element s’especificaran com a i, respectivament.
  • El nombre d'elements que es poden emmagatzemar en una matriu, és a dir, la mida d'una matriu o la seva longitud ve donada per l'equació següent:
    (límit superior-límit inferior) + 1
    Per a la matriu anterior, seria (9-0) + 1 = 10. On 0 és el límit inferior de la matriu i 9 és el límit superior de la matriu.
  • Les matrius es poden llegir o escriure a través del bucle. Si llegim la matriu unidimensional, cal un bucle per a la lectura i un altre per escriure (ing) la matriu, per exemple:
    a. Per llegir una matriu
    per a (i = 0; i <= 9; i ++)
    {scanf ("% d", & a); }
    b. Per escriure una matriu
    per a (i = 0; i <= 9; i ++)
    {f ("% d", a); }
  • En el cas d'una matriu 2-D, caldria dos bucles i, de la mateixa manera, una matriu n-dimensional necessitaria n bucles.

Les operacions realitzades en matrius són:

  1. Creació de matriu
  2. Travessant una matriu
  3. Inserció de nous elements
  4. Eliminació dels elements obligatoris.
  5. Modificació d’un element.
  6. Fusió de matrius

Exemple

El següent programa il·lustra la lectura i l'escriptura de la matriu.

#incloure
#incloure
void main ()
{
int a, i;
f ("Introduïu la matriu");
per a (i = 0; i <= 9; i ++)
{
scanf ("% d", & a);
}
f ("Introduïu la matriu");
per a (i = 0; i <= 9; i ++)
{
f ("% d n", a);
}
getch ();
}

Definició de Llista Enllaçada

La llista enllaçada és una llista particular d'alguns elements de dades vinculats entre si. En tot això, cada element apunta al següent element que representa l'ordenació lògica. Cada element s’anomena node, que té dues parts.

Part INFO que emmagatzema la informació i el puntari que apunta al següent element. Com sabeu per emmagatzemar adreces, tenim unes estructures de dades úniques en C anomenades punters. Per tant, el segon camp de la llista ha de ser un tipus de punter.

Els tipus de llistes enllaçades són Llista enllaçada per separat, Llista doblement enllaçada, Llista enllaçada circular, Llista doble enllaçada circular.

Les operacions realitzades a Llista enllaçada són:

  1. Creació
  2. Travers
  3. Inserció
  4. Supressió
  5. Cercant
  6. Concatenació
  7. Pantalla

Exemple

El fragment següent il·lustra la creació d'una llista enllaçada:

node estructura
{
núm. int;
node stuct * següent;
}
start = NULL;
void create ()
{
node estructura tipedef NODE;
NODE * p, * q;
char elecció;
primer = NULL;
fer
{
p = (NODE *) malloc (sizeof (NODE));
f ("Introduïu l'element de dades n");
scanf ("% d", & p -> num);
if (p == NULL)
{
q = arrencar;
while (q -> següent! = NULL)
{q = q -> següent
}
p -> següent = q -> següent;
q -> = p;
}
més
{
p -> següent = inici;
inici = p;
}
f ("Vols continuar (escriu y o n)? n");
scanf ("% c", & choice);
}
while ((choice == y) || (elecció == Y));
}

  1. Una matriu és l’estructura de dades que conté una col·lecció d’elements de dades de tipus similar mentre que la llista Enllaçada es considera com a estructura de dades no primitiva conté una col·lecció d’elements enllaçats no ordenats coneguts com a nodes.
  2. A la matriu, els elements pertanyen a índexs, és a dir, si voleu entrar al quart element, heu d'escriure el nom de la variable amb el seu índex o ubicació a entre claudàtors.
    Tanmateix, en una llista enllaçada, haureu de començar des del cap i treballar fins arribar al quart element.
  3. Tot i que l’accés a una matriu d’elements és ràpid mentre la llista Enllaçada té un temps lineal, de manera que és bastant més lenta.
  4. Operacions com la inserció i la supressió de les matrius consumeixen molt de temps. D'altra banda, el rendiment d'aquestes operacions a les llistes enllaçades és ràpid.
  5. Les fitxes són de mida fixa. En canvi, les llistes enllaçades són dinàmiques i flexibles i poden ampliar i contractar-ne la mida.
  6. En una matriu, la memòria s'assigna durant el temps de compilació mentre que en una llista enllaçada s'assigna durant l'execució o el temps d'execució.
  7. Els elements es guarden consecutivament en matrius mentre que es guarden aleatòriament en llistes enllaçades.
  8. El requisit de memòria és menor perquè les dades reals s’emmagatzemen dins de l’índex de la matriu. En contraposició, hi ha més memòria a les llistes enllaçades a causa de l’emmagatzematge d’elements de referència posteriors i propers addicionals.
  9. A més, l'ús de la memòria és ineficient a la matriu. Per contra, l'ús de memòria és eficient a la matriu.

Conclusió

Les llistes Array i Linked són els tipus d’estructures de dades que difereixen en la seva estructura, mètodes d’accés i manipulació, requeriment de memòria i ús. I té particular avantatge i desavantatge respecte a la seva implementació. En conseqüència, qualsevol pot utilitzar-se segons les necessitats.