Suositeltava, 2024

Toimituksen Valinta

Array- ja linkitetyn luettelon välinen ero

Suurin ero Array- ja Linked-listojen välillä koskee niiden rakennetta. Piirit ovat indeksipohjainen tietorakenne, jossa jokainen elementti liittyy indeksiin. Toisaalta linkitetty luettelo perustuu viitteisiin, joissa kukin solmu koostuu tiedoista ja viittauksista edelliseen ja seuraavaan elementtiin.

Pohjimmiltaan ryhmä on joukko samanlaisia ​​dataobjekteja, jotka on tallennettu peräkkäisiin muistipaikkoihin yhteisen otsikon tai muuttujan nimen alla.

Kun linkitetty lista on tietorakenne, joka sisältää niiden elementtien järjestyksen, joissa jokainen elementti on liitetty sen seuraavaan elementtiin. Liitetyn luettelon elementissä on kaksi kenttää. Yksi on Data-kenttä, ja toinen on linkkikenttä, Data-kenttä sisältää tallennettavan ja käsiteltävän arvon. Lisäksi linkkikentässä on seuraavan linkitetyn luettelon tietoyksikön osoite. Osoitetta, jota käytetään tietyn solmun käyttämiseen, kutsutaan osoittimeksi.

Toinen merkittävä ero matriisin ja linkitetyn luettelon välillä on se, että Arraylla on kiinteä koko ja se on ilmoitettava aikaisemmin, mutta linkitetty luettelo ei ole rajoitettu koon ja laajennuksen ja sopimuksen aikana.

Vertailukaavio

Vertailun perusteetryhmäLinkitetty luettelo
perustiedotSe on johdonmukainen joukko tietueita.Se on tilattu sarja, joka käsittää vaihtelevan määrän data-kohteita.
KokoMääritelty ilmoituksen aikana.Ei tarvitse määrittää; kasvaa ja kutistuu suorituksen aikana.
Tallennuksen allokointiElementin sijainti jaetaan kokoamisen aikana.Elementin sijainti määritetään ajon aikana.
Elementtien järjestysSäilytetään peräkkäinTallennettu satunnaisesti
Elementin käyttöSuora tai satunnainen pääsy, eli Määritä taulukon indeksi tai alaindeksi.Käytössäsi on peräkkäin eli Traverse aloitetaan listan ensimmäisestä solmusta osoittimen avulla.
Elementin lisääminen ja poistaminenTarvitaan hitaasti suhteellisen vaihtelua.Helpompi, nopea ja tehokas.
tutkivaBinaarihaku ja lineaarinen hakulineaarinen haku
Muisti vaaditaanVähemmänLisää
Muistin käyttöTehotonTehokas

Määritelmä Array

Ryhmä määritellään joukoksi tietyn määrän homogeenisia elementtejä tai dataelementtejä. Se tarkoittaa, että taulukko voi sisältää vain yhden tyyppisen datan, joko kaikki kokonaisluvut, kaikki kelluvan pisteen numerot tai kaikki merkit. Ryhmän ilmoitus on seuraava:
int a [10];
Missä int määrittelee tietotyypin tai tyypin elementtiryhmämyymälät. "A" on taulukon nimi, ja neliösulkujen sisällä määritetty numero on elementtien lukumäärä, joita matriisi voi tallentaa, jota kutsutaan myös taulukon kooksi tai pituudeksi.

Katsokaamme joitakin käsitteitä, jotka muistetaan ryhmistä:

  • Ryhmän yksittäisiä elementtejä voidaan käyttää kuvaamalla taulukon nimeä, jota seuraa indeksi tai alaindeksi (määrittelemällä elementin sijainti ryhmässä) neliösulkujen sisällä. Jos haluat esimerkiksi noutaa taulukon viidennen osan, meidän on kirjoitettava lausunto a [4].
  • Joka tapauksessa matriisin elementit tallennetaan peräkkäiseen muistipaikkaan.
  • Ryhmän ensimmäisellä elementillä on indeksi nolla [0]. Se tarkoittaa, että ensimmäinen ja viimeinen elementti määritetään [0] ja a [9].
  • Seuraavien yhtälöiden avulla saadaan joukko elementtejä, jotka voidaan tallentaa ryhmään, eli taulukon koko tai sen pituus.
    (ylempi raja-ala) + 1
    Edellä olevan taulukon kohdalla se olisi (9-0) + 1 = 10. Kun 0 on matriisin alaraja, ja 9 on taulukon yläraja.
  • Piirit voidaan lukea tai kirjoittaa silmukan kautta. Jos luemme yhdenulotteisen taulukon, se vaatii yhden silmukan lukemista varten ja muita taulukon kirjoittamiseen (tulostukseen), esimerkiksi:
    a. Ryhmän lukemiseen
    (i = 0; i <= 9; i ++)
    {scanf (“% d”, & a [i]); }
    b. Ryhmän kirjoittaminen
    (i = 0; i <= 9; i ++)
    {printf (“% d”, a [i]); }
  • 2-D-ryhmän tapauksessa se vaatisi kaksi silmukkaa ja vastaavasti n-ulotteinen taulukko tarvitsisi n silmukoita.

Ryhmillä suoritettavat toiminnot ovat:

  1. Ryhmän luominen
  2. Siirtyminen ryhmään
  3. Uusien elementtien lisääminen
  4. Vaadittujen elementtien poistaminen.
  5. Elementin muuttaminen.
  6. Ryhmien yhdistäminen

esimerkki

Seuraava ohjelma havainnollistaa taulukon lukemista ja kirjoittamista.

#include
#include
void main ()
{
int a[10], i;
printf("Enter the array");
for ( i= 0; i <= 9; i++)
{
scanf ( "%d", &a[ i ] ) ;
}
printf( "Enter the array" );
for (i = 0 ; i <= 9 ; i++)
{
printf ( "%d\n", a[ i ] ) ;
}
getch ();
}

Linkitetyn luettelon määritelmä

Linkitetty luettelo on tietty luettelo toisista toisiinsa liittyvistä tietoelementeistä. Tässä jokaisessa elementissä viitataan seuraavaan elementtiin, joka edustaa loogista järjestystä. Kutakin elementtiä kutsutaan solmuksi, jolla on kaksi osaa.

INFO-osa, joka tallentaa tiedot ja POINTER, joka osoittaa seuraavaan elementtiin. Kuten tiedät osoitteen tallentamisesta, meillä on C: ssä ainutlaatuiset tietorakenteet, joita kutsutaan osoittimiksi. Näin ollen luettelon toisen kentän on oltava osoitin.

Linkitettyjen luetteloiden tyypit ovat Singly-Link-luettelo, Doubly-linkkiluettelo, Circular-linkitetty luettelo, Circular double -lista.

Linkitetyssä luettelossa suoritetut toiminnot ovat:

  1. luominen
  2. liikkumisesta
  3. lisäys
  4. poisto
  5. tutkiva
  6. ketju
  7. Näyttö

esimerkki

Seuraava katkaisu kuvaa linkitetyn luettelon luomista:

struct node
{
int num;
stuct node *next;
}
start = NULL;
void create()
{
typedef struct node NODE;
NODE *p, *q;
char choice;
first = NULL;
do
{
p = (NODE *) malloc (sizeof (NODE));
printf ("Enter the data item\n");
scanf ("%d", & p -> num);
if (p == NULL)
{
q = start;
while (q -> next ! = NULL)
{ q = q -> next
}
p -> next = q -> next;
q -> = p;
}
else
{
p -> next = start;
start = p;
}
printf ("Do you want to continue (type y or n) ? \n");
scanf ("%c", &choice) ;
}
while ((choice == 'y') || (choice == 'Y'));
}

Avaimen ja linkitetyn luettelon keskeiset erot

  1. Ryhmä on tietorakenne, joka sisältää samankaltaisten tyyppisten datan elementtien kokoelman, kun taas linkitetty lista pidetään ei-primitiivisenä tietorakenteena, joka sisältää joukon järjestämättömiä linkkejä, joita kutsutaan solmuiksi.
  2. Ryhmässä elementit kuuluvat indekseihin, eli jos haluat päästä neljänteen elementtiin, sinun on kirjoitettava muuttujan nimi sen indeksin tai sijainnin kanssa neliösulakkeessa.
    Yhdistetyssä luettelossa sinun täytyy kuitenkin aloittaa pään ja työskennellä läpi, kunnes pääset neljänteen osaan.
  3. Elementtiryhmän käyttäminen on nopeaa, kun taas linkitetty luettelo vie lineaarisen ajan niin, että se on melko hitaampaa.
  4. Toiminnot, kuten lisääminen ja poistaminen ryhmissä, kuluttavat paljon aikaa. Toisaalta näiden toimintojen suorituskyky Linkitetyissä luetteloissa on nopea.
  5. Tasot ovat kiinteitä. Sitä vastoin linkitetyt luettelot ovat dynaamisia ja joustavia ja voivat laajentaa ja supistaa sen kokoa.
  6. Ryhmässä muisti määritetään koontiaikana, kun linkitetyssä luettelossa se allokoidaan suorituksen tai suorituksen aikana.
  7. Elementit tallennetaan peräkkäin matriiseihin, kun taas se tallennetaan satunnaisesti linkitetyissä luetteloissa.
  8. Muistin vaatimus on vähemmän, koska todelliset tiedot tallennetaan taulukon indeksiin. Sitä vastoin on tarvetta lisätä muistia linkitetyissä luetteloissa, koska seuraavien ja aiempien viittauselementtien tallennus on tallennettu.
  9. Muistin käyttö on lisäksi tehoton joukossa. Toisaalta muistin käyttö on tehokasta ryhmässä.

johtopäätös

Array- ja Linked-luettelot ovat tietorakenteita, jotka eroavat niiden rakenteesta, käyttö- ja manipulointimenetelmistä, muistin vaatimuksesta ja käytöstä. Ja sillä on erityistä etua ja haittaa sen täytäntöönpanoon nähden. Näin ollen kumpaakin voidaan käyttää tarpeen mukaan.

Top