data-structuresAan de slag met datastructuren


Opmerkingen

Deze sectie geeft een overzicht van wat datastructuren zijn en waarom een ontwikkelaar deze mogelijk wil gebruiken.

Het moet ook alle grote onderwerpen binnen gegevensstructuren vermelden en een link naar de gerelateerde onderwerpen. Omdat de documentatie voor datastructuren nieuw is, moet u mogelijk eerste versies van die gerelateerde onderwerpen maken.

Array: een eenvoudige gegevensstructuur

Een matrixgegevensstructuur wordt gebruikt om vergelijkbare objecten (of gegevenswaarden) op te slaan in een aaneengesloten geheugenblok. Matrixgegevensstructuur heeft een vaste grootte, die het aantal gegevenswaarden bepaalt dat erin kan worden opgeslagen.


Array: The C ++ Way

In C ++ Programming Language kunnen we een statische array als volgt declareren

int arrayName[100];
 

Hier hebben we een array met de naam "arrayName" verklaard, die maximaal 100 waarden kan opslaan, die allemaal van hetzelfde type zijn, dat wil zeggen een geheel getal.

Nu zullen we enkele voor- en nadelen van deze gegevensstructuur bespreken

  1. We hebben toegang tot gegevenswaarden die zijn opgeslagen in Array in constante tijd, dat wil zeggen de tijdcomplexiteit is O (1) . Dus als we toegang willen hebben tot de gegevenswaarde die op de i-de positie is opgeslagen, hoeven we niet vanaf de startpositie te beginnen en naar de i-de positie te gaan, maar we kunnen direct naar de i-de positie springen, wat computertijd bespaart.
  2. Een element invoegen in het midden van een array is geen efficiënte taak. Stel dat we een nieuw element in de array op i-de positie willen toevoegen, dan moeten we eerst alle elementen op (i-th) en (i + 1 e) positie verplaatsen om ruimte voor nieuw element te creëren. Voorbeeld: 1 4 2 0 is een array met 4 elementen, nu willen we 3 invoegen op de 2e positie, dan moeten we 4,2 en 0 een positie verder verplaatsen om ruimte voor 3 te creëren.
  1 3 4 2 0
 
  1. Net als bij het invoegen van het element, is het verwijderen van een element uit een i-de positie in een array ook niet efficiënt, omdat we alle elementen vóór het verwijderde element met 1 blok moeten verplaatsen om de lege ruimte te vullen die door de verwijderde is gecreëerd element.

Dit zijn 3 eenvoudige kenmerken van een array. Hier denkt u misschien dat array geen efficiënte gegevensstructuur is, maar in de praktijk kan het voordeel van een array de nadelen ervan overtreffen. Dit hangt grotendeels af van het soort doel dat u wilt dienen, het is mogelijk dat u het element niet zo vaak wilt invoegen of verwijderen als u er toegang toe wilt, in dat geval is een array een absoluut perfecte gegevensstructuur.

Het enige doel van de introductie van deze gegevensstructuur is om ervoor te zorgen dat u eenvoudigweg niet kiest voor Gegevensstructuur op basis van het aantal voor- en nadelen, maar u moet altijd proberen het belang van Gegevensstructuur te analyseren door bijvoorbeeld uw probleem in gedachten te houden, als u veel tijd besteedt aan toegang tot gegevenswaarden in vergelijking met het invoegen of verwijderen ervan, moeten we in dat geval meer gewicht geven aan voordeel boven nadeel.

Inleiding tot gegevensstructuren

Een gegevensstructuur is een manier om informatie te organiseren en op te slaan.

Laat een "Hallo wereld!" string is de informatie die we moeten organiseren en opslaan in byte-adresseerbaar geheugen.

Elk ASCII-teken vereist 7 bits opslag. De meeste systemen reserveren 8 bits (1 byte) voor elk karakter, dus elk karakter in "Hallo wereld!" wordt achtereenvolgens opgeslagen in een afzonderlijke geheugeneenheid van byte-grootte.

We hebben één verwijzing naar onze string nodig, hoewel deze meerdere geheugenadressen beslaat, dus we gebruiken het adres van het eerste teken in de string, 'H'. Elk ander karakter is toegankelijk op het adres van 'H' + de index van dat karakter met behulp van nul-geïndexeerde karakters.

We willen onze string afdrukken: "Hallo wereld!" We kennen het adres in het geheugen, dat we aan de afdrukfunctie leveren, maar hoe weet de afdrukfunctie het afdrukken van opeenvolgende geheugenlocaties te stoppen? Een gebruikelijke aanpak is om het nul-teken '\ 0' aan de string toe te voegen. Wanneer de afdrukfunctie het null-teken tegenkomt, weet het dat het het einde van de string heeft bereikt.

We hebben een manier gedefinieerd om onze string te organiseren en op te slaan, dat wil zeggen een datastructuur! Deze zeer eenvoudige gegevensstructuur is een reeks tekens die door nul worden beëindigd, wat een manier is om een tekenreeks te ordenen en op te slaan.