Nøgleforskellen mellem lineær og ikke-lineær datastruktur er, at i lineære datastrukturer er organiseringen af dataelementer sekventiel, mens organiseringen af dataelementer i ikke-lineære datastrukturer ikke er sekventiel.
En datastruktur er en metode til organisering og lagring af data, som ville tillade effektiv datahentning og brug. Lineær datastruktur er en struktur, der organiserer sine dataelementer efter hinanden. Organiseringen af lineære datastrukturer svarer til organisationen af computerhukommelsen. Konstruktion af ikke-lineære datastrukturer sker ved at knytte et dataelement til flere andre dataelementer på en sådan måde, at det afspejler et specifikt forhold mellem dem. Organiseringen af ikke-lineære datastrukturer er anderledes end computerens hukommelse.
Hvad er lineære datastrukturer?
Lineære datastrukturer organiserer deres dataelementer på en lineær måde, hvor hvert dataelement vedhæftes det ene efter det andet. I lineære datastrukturer krydser dataelementerne efter hinanden, og kun ét element kan nås direkte under gennemkørslen. Desuden er lineære datastrukturer meget nemme at implementere, da organiseringen af computerhukommelsen også er på en lineær måde.
Figur 01: stakdatastruktur
Nogle almindeligt anvendte lineære datastrukturer er arrays, sammenkædede lister, stakke og køer. For det første er et array en samling af dataelementer af samme type. Indekset hjælper med at identificere hvert element i arrayet. For det andet er en sammenkædet liste en sekvens af noder, hvor hver node er opbygget af et dataelement og en reference til den næste node i sekvensen. For det tredje er en stak også en lineær datastruktur. Det er kun muligt at tilføje eller fjerne dataelementer fra toppen af listen. For det fjerde er en kø også en liste. Det gør det muligt at tilføje dataelementer fra den ene ende af listen og fjerne fra den anden ende af listen.
Hvad er ikke-lineære datastrukturer?
I ikke-lineære datastrukturer er organiseringen af dataelementerne ikke på en sekventiel måde. Det er muligt at knytte et dataelement i en ikke-lineær datastruktur til flere andre dataelementer for at afspejle et særligt forhold mellem dem. Desuden er det ikke muligt at krydse emnerne i en enkelt kørsel.
Figur 02: Trædatastruktur
Datastrukturer som træer og grafer er nogle eksempler på ikke-lineære datastrukturer. For det første er et træ en datastruktur, der består af et sæt forbundne noder. Det gør det muligt at repræsentere et hierarkisk forhold mellem dataelementer. For det andet er en graf en datastruktur, der består af et begrænset sæt kanter og hjørner. De hjørner, der er lagret dataelementer og kanter, repræsenterer forbindelserne eller relationerne mellem hjørnerne.
Hvad er forskellen mellem lineære og ikke-lineære datastrukturer?
Lineære datastrukturer organiserer dataelementerne på en sekventiel måde, og det er muligt at krydse dataelementerne i en enkelt kørsel i en linerdatastruktur. Desuden er det lettere at implementere lineære datastrukturer. Array, Stack, Queue, Linked List er nogle eksempler på lineære datastrukturer.
Ikke-lineære datastrukturer organiserer ikke dataene på en sekventiel måde, og det er ikke muligt at krydse dataelementerne i en enkelt kørsel i en ikke-lineær datastruktur. Desuden er det vanskeligt at implementere ikke-lineære datastrukturer. Træ og graf er nogle eksempler på ikke-lineære datastrukturer.
Opsummering – Lineære vs ikke-lineære datastrukturer
Forskellen mellem lineær og ikke-lineær datastruktur er, at i lineære datastrukturer er organiseringen af dataelementer sekventiel, mens organiseringen af dataelementer ikke er sekventiel i ikke-lineære datastrukturer. Kort sagt er det let at implementere lineære datastrukturer i computerhukommelsen end de ikke-lineære datastrukturer. Valg af en datastrukturtype frem for den anden bør gøres omhyggeligt ved at overveje forholdet mellem de dataelementer, der skal lagres.