data-structuresKomma igång med datastrukturer


Anmärkningar

Det här avsnittet ger en översikt över vad datastrukturer är och varför en utvecklare kanske vill använda den.

Det bör också nämna alla stora ämnen inom datastrukturer och koppla till de relaterade ämnena. Eftersom dokumentationen för datastrukturer är ny, kan du behöva skapa initialversioner av relaterade ämnen.

Array: En enkel datastruktur

En matrisdatastruktur används för att lagra liknande objekt (eller datavärden) i ett sammanhängande minnesblock. Array Data Structure har fast storlek, som bestämmer antalet datavärden som kan lagras i den.


Array: The C ++ Way

I C ++ programmeringsspråk kan vi förklara en statisk grupp enligt följande

int arrayName[100];
 

Här har vi förklarat en matris med namnet "arrayName" som kan lagra upp till 100 värden, som alla är av samma typ, det vill säga ett heltal.

Nu kommer vi att diskutera några fördelar och nackdelar med denna datastruktur

  1. Vi har åtkomst till datavärden lagrade i Array i konstant tid, det vill säga tidskomplexiteten är O (1) . Så om vi vill få tillgång till datavärdet som är lagrat i det i-läget, behöver vi inte börja från startpositionen och gå upp till det i-läget, men vi kan direkt hoppa till det i-läget och därmed spara datortid.
  2. Att infoga ett element i mitten av en matris är inte en effektiv uppgift. Anta att vi vill lägga till ett nytt element i arrayen i i-läget, då måste vi först flytta allt elementet i (i-th) och (i + 1: e) positionen för att skapa utrymme för nytt element. Exempel: 1 4 2 0 är en matris med 4 element, nu vill vi infoga 3 på 2: a positionen då måste vi flytta 4,2 och 0 en position ytterligare för att skapa utrymme för 3.
  1 3 4 2 0
 
  1. I likhet med infogning av elementet är borttagning av ett element från en i-läge i en matris inte heller effektiv eftersom vi måste flytta alla element framför det borttagna elementet med ett block för att fylla det lediga utrymmet som skapats av det raderade element.

Dessa är tre enkla egenskaper hos en matris. Här kan du tro att matrisen inte är en effektiv datastruktur, men i praktiken kan fördelarna med en matris överväga dess dis-fördelar. Detta beror till stor del på vilken typ av syfte du vill servera, det kan vara möjligt att du inte vill infoga eller radera element så ofta som du vill komma åt dem, i så fall är en matris en helt perfekt datastruktur.

Det enda syftet med att införa denna datastruktur är att se till att du helt enkelt inte väljer datastruktur baserat på antalet fördelar och nackdelar, men du bör alltid försöka analysera betydelsen av datastruktur genom att tänka på ditt problem i åtanke, till exempel, om du kommer att spendera mycket tid på att komma åt datavärden jämfört med att infoga eller ta bort dem, i så fall måste vi lägga mer vikt till fördel över nackdel.

Introduktion till datastrukturer

En datastruktur är ett sätt att organisera och lagra information.

Låt en "Hej, världen!" sträng är den information som vi behöver för att organisera och lagra i byte-adresserbara minne.

Varje ASCII-karaktär kräver 7 bitar lagring. De flesta system reserverar 8 bitar (1 byte) för varje tecken, så varje tecken i "Hej, världen!" lagras i en individuell byte-stor minnesenhet, en efter en, i följd.

Vi behöver en enda referens till vår sträng även om den sträcker sig över flera minnesadresser, så vi använder adressen till det första tecknet i strängen, 'H'. Alla andra tecken kan nås på adressen till 'H' + indexet för det tecknet med nollindexerade tecken.

Vi vill skriva ut vår sträng, "Hej, världen!" Vi känner till adressen i minnet, som vi levererar till utskriftsfunktionen, men hur vet utskriftsfunktionen att sluta skriva ut på varandra följande minnesplatser? En vanlig metod är att lägga till nolltecknet, '\ 0', till strängen. När utskriftsfunktionen möter nolltecknet vet den att den har nått slutet av strängen.

Vi har definierat ett sätt att organisera och lagra vår sträng, dvs en datastruktur! Den här enkla datastrukturen är en nollavslutad teckenuppsättning, vilket är ett sätt att organisera och lagra en sträng.