Google Play badge

array och länkade listor


Arrayer och länkade listor

Välkommen till vår lektion om arrayer och länkade listor. I den här lektionen kommer vi att lära oss två enkla sätt att lagra och organisera data. Föreställ dig att du har en rad leksakslådor eller en rad skåp i skolan. Matriser och länkade listor fungerar på liknande sätt. De hjälper oss att hålla saker snygga och lätta att hitta. Den här lektionen är skriven på ett enkelt språk med vardagliga exempel för att hjälpa dig att enkelt förstå dessa idéer.

Introduktion

Datastrukturer hjälper datorer att lagra och organisera information. Två viktiga datastrukturer är arrayer och länkade listor. Du kan tänka på en array som en rad med lådor och en länkad lista som en kedja av sammankopplade ledtrådar på en skattjakt. Båda dessa hjälper oss att hålla reda på många föremål, som leksaker, böcker eller till och med dina favoritsnacks.

Vi kommer att prata om vad en array är, vad en länkad lista är, hur de fungerar och hur de är olika. Vi kommer också att se verkliga exempel som gör dessa idéer så tydliga som möjligt.

Vad är en Array?

En array är bara en samling objekt. Det är som en rad med lådor där varje låda rymmer ett föremål. Föreställ dig till exempel en uppsättning av fem lådor uppradade i rad. Du kan använda varje låda för att förvara en favoritleksak eller ett mellanmål.

Varje ruta i en array har ett nummer som kallas ett index. Den första rutan är vanligtvis numrerad 0, nästa är 1, sedan 2, och så vidare. Denna numrering hjälper dig att snabbt hitta en specifik artikel. Om du till exempel vill ha föremålet i den tredje rutan, tittar du helt enkelt på rutan med index 2.

Här är en enkel formel för att förklara hur vi kan hitta ett objekt i en array. Om den första rutan är vid en startpunkt, kan adressen till ett objekt ses som:

\( \textrm{Adress}(A(i)) = \textrm{Adress}(A(0)) + i \times \textrm{(storlek på en vara)} \)

Detta säger oss att för att flytta från den första rutan till den låda vi vill ha, räknar du fram ett visst antal platser.

Egenskaper för arrayer

Tänk på en uppsättning som sätena i en liten biograf. Varje plats har ett nummer, och du kan snabbt gå till din plats om du vet dess nummer.

Vardagsexempel på en array

Föreställ dig att din skola har en rad med skåp, alla med ett unikt nummer. När du går och lägger din väska i ditt skåp använder du det specifika numret på skåpet. I en array är varje skåp som en låda, och numret talar om exakt var din väska – eller data – förvaras.

Vad är en länkad lista?

En länkad lista är ett annat sätt att lagra objekt. Den skiljer sig från en array eftersom den inte använder en lång rad med fasta lådor. Istället använder den speciella rutor som kallas noder. Varje nod innehåller ett objekt och har även en pekare som talar om för dig var nästa nod är.

Föreställ dig att du är på skattjakt. Varje ledtråd du hittar berättar var nästa ledtråd är gömd. I en länkad lista är varje nod som en av dessa ledtrådar. När du börjar vid den första ledtråden följer du pekaren från en nod till nästa tills du hittar det du behöver.

Du kan tänka på varje nod som ett litet kuvert. Kuvertet innehåller ett kort (data) och även en sedel (pekaren). Den här lappen talar om vilket kuvert som kommer härnäst i raden.

Hur en länkad lista fungerar

Låt oss titta på ett enkelt sätt att skriva vad en nod är:

Nod = {data, pekare)

"Datan" i en nod är informationen som lagras, och "pekaren" är som en pil som leder dig till nästa nod. Till skillnad från en array kräver inte en länkad lista att alla noder ligger bredvid varandra i minnet; de kan vara var som helst, så länge pekarna ansluter dem.

Typer av länkade listor

Det finns olika stilar av länkade listor. Här är tre vanliga typer:

Verkliga exempel på en länkad lista

Föreställ dig att du följer en skattkarta. Varje steg på kartan talar om för dig var nästa steg är. Även om du lägger till en extra ledtråd eller tar bort en, kan du fortfarande följa med genom att läsa ledtråden på varje kort. Så här fungerar en länkad lista. Varje nod (eller ledtråd) är kopplad till nästa, så att du kan gå igenom listan ett steg i taget.

Jämförelse mellan matriser och länkade listor

Både matriser och länkade listor hjälper oss att lagra föremål, men de gör det på olika sätt. Här är några jämförelser:

Fördelar och nackdelar

Varje datastruktur har sina bra delar och sina utmaningar. Att förstå dessa hjälper dig att välja den bästa att använda.

Arrayer:

Fördelar:

Nackdelar:

Länkade listor:

Fördelar:

Nackdelar:

Arbeta med arrayer

Låt oss se hur vi kan använda en array på ett enkelt sätt. Anta att du vill lagra dina fem favoritfärger. Du skapar en array med fem rutor. Sedan lägger du varje färg i en låda i ordning. Till exempel:

Nu, om du vill veta vilken färg som finns i ruta 2, tittar du helt enkelt på den rutan och du kommer att se "Grön". Denna enkla åtkomst är en av de bästa delarna med att använda en array.

Arbeta med länkade listor

Låt oss nu titta på en länkad lista. Se det här som en skattjakt där du börjar med en ledtråd och sedan följer instruktionerna för att hitta nästa. I en länkad lista börjar vi med en nod som innehåller en del data. Denna nod har en pekare som visar vilken nod som kommer härnäst.

Föreställ dig till exempel att du har tre noder i en länkad lista som berättar en rolig historia:

Du börjar vid Nod 1 och följer pekaren (ledtråden) till Nod 2, sedan till Nod 3. Även om du vill lägga till en ny ledtråd mellan någon av dessa behöver du bara ändra några få pekare. Detta gör länkade listor mycket flexibla.

Visualisera arrayer och länkade listor

Det är bra att föreställa sig dessa datastrukturer i ditt sinne. Föreställ dig en array som en lång rad tydliga, märkta lådor på en hylla. Varje låda rymmer något och har en fast plats. Föreställ dig nu en länkad lista som en sträng med kort. Varje kort har en lapp som anger var nästa kort är gömt. I en array kan du hoppa direkt till en specifik ruta efter dess nummer. I en länkad lista måste du följa korten i ordning.

Vardagsapplikationer

Arrayer används i många vardagliga saker. Tänk dig till exempel en kalender. En kalender har ett fast antal dagar i varje vecka, och dessa dagar är ordnade i rad. När du tittar på kalendern vet du exakt vilken dag som är på vilken plats.

Länkade listor används när antalet objekt kan ändras över tid. Tänk på en rad människor som väntar vid en glassbil. Ibland ansluter sig nya människor, och ibland lämnar någon. Linan kan växa eller krympa utan att behöva skapa en ny fast struktur. Detta gör länkade listor mycket användbara i scenarier där saker förändras ofta.

Anpassa datalagring

Att välja mellan arrayer och länkade listor beror på vad du behöver göra med din data. Om du vet att du alltid kommer att ha ett fast antal artiklar – som dagarna i veckan – så är en array mycket lämplig. Men om mängden data ändras och du behöver en struktur som enkelt kan anpassas, kommer en länkad lista att vara ett bättre val.

Till exempel, i ett datorspel, kan en array användas för att lagra poängen för varje nivå eftersom antalet nivåer är fast. Å andra sidan kan en länkad lista användas för att hantera en lista med spelarnas handlingar eller rörelser, som kan växa allt eftersom spelet fortsätter.

Hur man bestämmer vilken man ska använda

När du behöver snabb åtkomst till objekt utifrån deras position är arrayer det bästa valet. Detta beror på att du direkt kan hoppa till vilken plats som helst om du vet dess nummer. Men när du ofta behöver lägga till eller ta bort objekt är länkade listor mer användbara eftersom de låter dig ändra listan utan att flytta runt många objekt.

Tänk på det så här: om du har ett klistermärkesalbum med ett visst antal sidor, är en array som det albumet. Men om du har en växande samling vykort som du lägger till på en anslagstavla, är en länkad lista mer sådan eftersom du enkelt kan lägga till ett nytt vykort mellan andra utan att ordna om hela tavlan.

Nyckelpunkter och sammanfattning

Låt oss gå igenom huvudpunkterna i vår lektion:

Arrayer:

Länkade listor:

Skillnader och användningsområden:

Sammanfattningsvis är arrayer och länkade listor två viktiga datastrukturer som används för att organisera data. Arrayer fungerar som en rad med fasta, numrerade rutor, medan länkade listor fungerar som en skattjakt där varje steg talar om för dig vart du ska gå härnäst. Båda metoderna har sina styrkor och används i olika situationer utifrån uppgiftens behov.

Att förstå dessa två metoder för datalagring är mycket användbart. Många datorprogram, spel och applikationer använder arrayer och länkade listor i bakgrunden. Genom att lära dig hur de fungerar får du insikt i hur datorer organiserar och hanterar data.

Kom ihåg: arrayer är enkla och snabba när strukturen är fixerad, medan länkade listor erbjuder flexibilitet när data ändras. Oavsett om du föreställer dig en rad med skåp eller en skattspår av ledtrådar, hjälper dessa koncept oss att förstå hur information lagras och används varje dag.

Den här lektionen har gett dig en tydlig uppfattning om vad matriser och länkade listor är. När du fortsätter att lära dig och utforska datavetenskap kommer dessa grundläggande idéer att hjälpa dig att förstå mer komplexa ämnen. De är byggstenarna i mer avancerade datastrukturer och algoritmer.

Sammanfattning av nyckelpunkter:

Tack för att du läser den här lektionen om arrayer och länkade listor. Vi hoppas att du har gillat att lära dig om dessa metoder för att lagra data på ett tydligt och enkelt sätt. När du växer och lär dig mer, kom ihåg dessa grundläggande strukturer och hur de hjälper till att få datorer att fungera effektivt.

Download Primer to continue