logo

En introduksjon til datastrukturer

Siden oppfinnelsen av datamaskiner har folk brukt begrepet ' Data ' for å referere til datamaskininformasjon, enten overført eller lagret. Det er imidlertid data som også finnes i ordretyper. Data kan være tall eller tekster skrevet på et stykke papir, i form av biter og bytes lagret i minnet til elektroniske enheter, eller fakta lagret i en persons sinn. Etter hvert som verden begynte å modernisere seg, ble disse dataene et viktig aspekt av alles daglige liv, og ulike implementeringer tillot dem å lagre dem annerledes.

Data er en samling av fakta og tall eller et sett med verdier eller verdier av et spesifikt format som refererer til et enkelt sett med elementverdier. Dataelementene blir deretter klassifisert i underelementer, som er gruppen av elementer som ikke er kjent som den enkle primære formen for elementet.

La oss se på et eksempel der et ansattnavn kan deles inn i tre underelementer: First, Middle og Last. Imidlertid vil en ID som er tildelt en ansatt generelt betraktes som en enkelt vare.

En introduksjon til datastrukturer

Figur 1: Representasjon av dataelementer

I eksemplet nevnt ovenfor er elementene som ID, Alder, Kjønn, First, Middle, Last, Street, Locality osv. elementære dataelementer. Derimot er navnet og adressen gruppedataelementer.

Hva er datastruktur?

Data struktur er en gren av informatikk. Studiet av datastruktur lar oss forstå organiseringen av data og styringen av dataflyten for å øke effektiviteten til enhver prosess eller program. Datastruktur er en spesiell måte å lagre og organisere data på i datamaskinens minne slik at disse dataene enkelt kan hentes og effektivt brukes i fremtiden når det er nødvendig. Dataene kan administreres på forskjellige måter, som den logiske eller matematiske modellen for en spesifikk organisering av data er kjent som en datastruktur.

Omfanget av en bestemt datamodell avhenger av to faktorer:

  1. For det første må det lastes nok inn i strukturen til å gjenspeile den definitive korrelasjonen mellom dataene og et objekt i den virkelige verden.
  2. For det andre bør formasjonen være så enkel at man kan tilpasse seg for å behandle dataene effektivt når det er nødvendig.

Noen eksempler på datastrukturer er Arrays, Linked Lists, Stack, Queue, Trees, etc. Datastrukturer er mye brukt i nesten alle aspekter av informatikk, dvs. kompilatordesign, operativsystemer, grafikk, kunstig intelligens og mange flere.

Datastrukturer er hoveddelen av mange informatikkalgoritmer, da de lar programmererne administrere dataene på en effektiv måte. Den spiller en avgjørende rolle for å forbedre ytelsen til et program eller programvare, siden hovedmålet med programvaren er å lagre og hente brukerens data så raskt som mulig.

Javafx opplæring

Grunnleggende terminologier relatert til datastrukturer

Datastrukturer er byggesteinene i enhver programvare eller ethvert program. Å velge passende datastruktur for et program er en ekstremt utfordrende oppgave for en programmerer.

Følgende er noen grunnleggende terminologier som brukes når datastrukturene er involvert:

    Data:Vi kan definere data som en elementær verdi eller en samling av verdier. For eksempel er den ansattes navn og ID data knyttet til den ansatte.Dataelementer:En enkelt verdienhet er kjent som dataelement.Gruppeartikler:Dataelementer som har underordnede dataelementer er kjent som gruppeelementer. For eksempel kan en ansatts navn ha et for-, mellom- og etternavn.Elementære elementer:Dataelementer som ikke kan deles inn i underelementer, kalles elementære elementer. For eksempel ID-en til en ansatt.Entitet og attributt:En klasse av visse objekter er representert av en Entity. Den består av forskjellige attributter. Hvert attributt symboliserer den spesifikke egenskapen til den enheten. For eksempel,
Attributter ID Navn Kjønn Jobbtittel
Verdier 1234 Stacey M. Hill Hunn Programvareutvikler

Enheter med lignende attributter danner en Entitetssett . Hvert attributt til et enhetssett har en rekke verdier, settet med alle mulige verdier som kan tilordnes det spesifikke attributtet.

Begrepet 'informasjon' brukes noen ganger for data med gitte attributter for meningsfulle eller behandlede data.

    Felt:En enkelt elementær enhet med informasjon som symboliserer attributtet til en enhet er kjent som felt.Ta opp:En samling av forskjellige dataelementer er kjent som en post. For eksempel, hvis vi snakker om den ansatte enheten, kan dens navn, id, adresse og stillingstittel grupperes for å danne posten for den ansatte.Fil:En samling av forskjellige poster av en enhetstype er kjent som en fil. For eksempel, hvis det er 100 ansatte, vil det være 25 poster i den relaterte filen som inneholder data om hver ansatt.

Forstå behovet for datastrukturer

Ettersom applikasjoner blir mer komplekse og datamengden øker hver dag, kan det føre til problemer med datasøk, prosesseringshastighet, håndtering av flere forespørsler og mange flere. Datastrukturer støtter ulike metoder for å organisere, administrere og lagre data effektivt. Ved hjelp av Data Structures kan vi enkelt krysse dataelementene. Datastrukturer gir effektivitet, gjenbrukbarhet og abstraksjon.

Hvorfor bør vi lære datastrukturer?

  1. Datastrukturer og algoritmer er to av nøkkelaspektene ved informatikk.
  2. Datastrukturer lar oss organisere og lagre data, mens algoritmer lar oss behandle disse dataene meningsfullt.
  3. Å lære datastrukturer og algoritmer vil hjelpe oss å bli bedre programmerere.
  4. Vi vil være i stand til å skrive kode som er mer effektiv og pålitelig.
  5. Vi vil også kunne løse problemer raskere og mer effektivt.

Forstå målene for datastrukturer

Datastrukturer tilfredsstiller to komplementære mål:

    Riktighet:Datastrukturer er designet for å fungere korrekt for alle typer innganger basert på interessedomenet. Korrekthet danner med andre ord hovedmålet for datastrukturen, som alltid avhenger av problemene som datastrukturen er ment å løse.Effektivitet:Datastrukturer krever også å være effektive. Den skal behandle dataene raskt uten å bruke mange datamaskinressurser som minneplass. I sanntidstilstand er effektiviteten til en datastruktur en nøkkelfaktor for å bestemme suksessen og fiaskoen til prosessen.

Forstå noen hovedtrekk ved datastrukturer

Noen av de vesentlige egenskapene til datastrukturer er:

    Robusthet:Generelt tar alle dataprogrammerere sikte på å produsere programvare som gir riktig utgang for alle mulige input, sammen med effektiv utførelse på alle maskinvareplattformer. Denne typen robust programvare må håndtere både gyldige og ugyldige innganger.Tilpasningsevne:Å bygge programvare som nettlesere, tekstbehandlere og Internett-søkemotorer inkluderer enorme programvaresystemer som krever riktig og effektiv arbeid eller utførelse i mange år. Dessuten utvikler programvare seg på grunn av nye teknologier eller stadig skiftende markedsforhold.Gjenbrukbarhet:Funksjoner som gjenbruk og tilpasningsevne går hånd i hånd. Det er kjent at programmereren trenger mange ressurser for å bygge programvare, noe som gjør det til en kostbar bedrift. Men hvis programvaren er utviklet på en gjenbrukbar og tilpasningsdyktig måte, kan den brukes i de fleste fremtidige applikasjoner. Ved å utføre kvalitetsdatastrukturer er det således mulig å bygge gjenbrukbar programvare, som fremstår som kostnadseffektiv og tidsbesparende.

Klassifisering av datastrukturer

En datastruktur leverer et strukturert sett med variabler relatert til hverandre på ulike måter. Det danner grunnlaget for et programmeringsverktøy som angir forholdet mellom dataelementene og lar programmerere behandle dataene effektivt.

Vi kan klassifisere datastrukturer i to kategorier:

  1. Primitiv datastruktur
  2. Ikke-primitiv datastruktur

Følgende figur viser de forskjellige klassifiseringene av datastrukturer.

En introduksjon til datastrukturer

Figur 2: Klassifikasjoner av datastrukturer

Primitive datastrukturer

    Primitive datastrukturerer datastrukturene som består av tallene og tegnene som kommer innebygd inn i programmer.
  1. Disse datastrukturene kan manipuleres eller betjenes direkte av instruksjoner på maskinnivå.
  2. Grunnleggende datatyper som Heltall, flytende, tegn , og boolsk kommer inn under de primitive datastrukturene.
  3. Disse datatypene kalles også Enkle datatyper , da de inneholder tegn som ikke kan deles videre

Ikke-primitive datastrukturer

    Ikke-primitive datastrukturerer de datastrukturene som er avledet fra Primitive Data Structures.
  1. Disse datastrukturene kan ikke manipuleres eller betjenes direkte av instruksjoner på maskinnivå.
  2. Fokuset til disse datastrukturene er å danne et sett med dataelementer som er enten homogen (samme datatype) eller heterogen (ulike datatyper).
  3. Basert på strukturen og arrangementet av data, kan vi dele disse datastrukturene inn i to underkategorier -
    1. Lineære datastrukturer
    2. Ikke-lineære datastrukturer

Lineære datastrukturer

En datastruktur som bevarer en lineær forbindelse mellom dataelementene er kjent som en lineær datastruktur. Ordningen av dataene gjøres lineært, der hvert element består av etterfølgerne og forgjengerne bortsett fra det første og det siste dataelementet. Det er imidlertid ikke nødvendigvis sant når det gjelder minne, siden arrangementet kanskje ikke er sekvensielt.

Basert på minneallokering er de lineære datastrukturene videre klassifisert i to typer:

    Statiske datastrukturer:Datastrukturene som har en fast størrelse er kjent som statiske datastrukturer. Minnet for disse datastrukturene tildeles på kompilatortidspunktet, og størrelsen deres kan ikke endres av brukeren etter å ha blitt kompilert; dataene som er lagret i dem kan imidlertid endres.
    De Array er det beste eksemplet på den statiske datastrukturen siden de har en fast størrelse, og dataene kan endres senere.Dynamiske datastrukturer:Datastrukturene som har en dynamisk størrelse er kjent som dynamiske datastrukturer. Minnet til disse datastrukturene tildeles under kjøretiden, og størrelsen deres varierer i løpet av kodens kjøretid. Dessuten kan brukeren endre størrelsen så vel som dataelementene som er lagret i disse datastrukturene ved kjøringen av koden.
    Koblede lister, stabler , og Haler er vanlige eksempler på dynamiske datastrukturer

Typer lineære datastrukturer

Følgende er listen over lineære datastrukturer som vi vanligvis bruker:

gimp erstatte farge

1. Matriser

An Array er en datastruktur som brukes til å samle flere dataelementer av samme datatype til én variabel. I stedet for å lagre flere verdier av samme datatyper i separate variabelnavn, kan vi lagre dem alle sammen til én variabel. Denne setningen innebærer ikke at vi må forene alle verdiene av samme datatype i et hvilket som helst program til en matrise av den datatypen. Men det vil ofte være tider når noen spesifikke variabler av samme datatyper alle er relatert til hverandre på en måte som passer for en matrise.

En Array er en liste over elementer der hvert element har en unik plass i listen. Dataelementene i matrisen deler samme variabelnavn; hver har imidlertid et forskjellig indeksnummer kalt et subscript. Vi kan få tilgang til et hvilket som helst dataelement fra listen ved hjelp av plasseringen i listen. Derfor er nøkkelfunksjonen til arrayene å forstå at dataene er lagret i sammenhengende minneplasseringer, noe som gjør det mulig for brukerne å gå gjennom dataelementene i arrayen ved å bruke deres respektive indekser.

En introduksjon til datastrukturer

Figur 3. En matrise

Matriser kan klassifiseres i forskjellige typer:

    En-dimensjonal matrise:En matrise med bare én rad med dataelementer er kjent som en endimensjonal matrise. Den er lagret i stigende lagringssted.To-dimensjonal array:En matrise som består av flere rader og kolonner med dataelementer kalles en todimensjonal matrise. Det er også kjent som en matrise.Flerdimensjonal matrise:Vi kan definere Multidimensjonal Array som en Array of Array. Flerdimensjonale matriser er ikke begrenset til to indekser eller to dimensjoner, da de kan inkludere så mange indekser som er etter behov.

Noen applikasjoner av Array:

  1. Vi kan lagre en liste over dataelementer som tilhører samme datatype.
  2. Array fungerer som et hjelpelager for andre datastrukturer.
  3. Arrayen hjelper også med å lagre dataelementer i et binært tre med det faste antallet.
  4. Array fungerer også som en lagring av matriser.

2. Koblede lister

EN Koblet liste er et annet eksempel på en lineær datastruktur som brukes til å lagre en samling av dataelementer dynamisk. Dataelementer i denne datastrukturen er representert av nodene, koblet sammen ved hjelp av lenker eller pekere. Hver node inneholder to felt, informasjonsfeltet består av de faktiske dataene, og pekerfeltet består av adressen til de påfølgende nodene i listen. Pekeren til den siste noden i den koblede listen består av en null-peker, siden den peker til ingenting. I motsetning til Arrays, kan brukeren dynamisk justere størrelsen på en koblet liste i henhold til kravene.

En introduksjon til datastrukturer

Figur 4. En koblet liste

Koblede lister kan klassifiseres i forskjellige typer:

    Enkeltlenket liste:En enkelt lenket liste er den vanligste typen lenket liste. Hver node har data og et pekerfelt som inneholder en adresse til neste node.Dobbeltkoblet liste:En dobbeltlenket liste består av et informasjonsfelt og to pekerfelt. Informasjonsfeltet inneholder dataene. Det første pekerfeltet inneholder en adresse til forrige node, mens et annet pekerfelt inneholder en referanse til neste node. Dermed kan vi gå i begge retninger (bakover så vel som fremover).Sirkulær lenket liste:Den sirkulære lenkede listen ligner på Singly Linked List. Den eneste nøkkelforskjellen er at den siste noden inneholder adressen til den første noden, og danner en sirkulær sløyfe i den sirkulære lenkede listen.

Noen applikasjoner for koblede lister:

  1. De koblede listene hjelper oss med å implementere stabler, køer, binære trær og grafer av forhåndsdefinert størrelse.
  2. Vi kan også implementere Operativsystems funksjon for dynamisk minnehåndtering.
  3. Koblede lister tillater også polynomimplementering for matematiske operasjoner.
  4. Vi kan bruke Circular Linked List for å implementere operativsystemer eller applikasjonsfunksjoner som Round Robin utfører oppgaver.
  5. Circular Linked List er også nyttig i en lysbildefremvisning der en bruker må gå tilbake til det første lysbildet etter at det siste lysbildet er presentert.
  6. Doubly Linked List brukes til å implementere frem- og bakover-knapper i en nettleser for å flytte fremover og bakover på de åpne sidene på et nettsted.

3. Stabler

EN Stable er en lineær datastruktur som følger LIFO (Sist inn, først ut) prinsipp som tillater operasjoner som innsetting og sletting fra den ene enden av stabelen, dvs. Topp. Stabler kan implementeres ved hjelp av sammenhengende minne, en Array, og ikke-sammenhengende minne, en Linked List. Eksempler fra virkeligheten på stabler er hauger med bøker, en kortstokk, hauger med penger og mange flere.

latex tekststørrelse
En introduksjon til datastrukturer

Figur 5. Et virkelighetseksempel på stabel

Figuren ovenfor representerer det virkelige eksempelet på en stabel der operasjonene bare utføres fra den ene enden, som innsetting og fjerning av nye bøker fra toppen av stabelen. Det innebærer at innsetting og sletting i stabelen kun kan gjøres fra toppen av stabelen. Vi har kun tilgang til toppene til stakken til enhver tid.

De primære operasjonene i stakken er som følger:

    Trykk:Operasjon for å sette inn et nytt element i stabelen kalles push-operasjon.Pop:Operasjon for å fjerne eller slette elementer fra stabelen kalles popoperasjon.
En introduksjon til datastrukturer

Figur 6. En stabel

Noen bruksområder for stabler:

  1. Stakken brukes som en midlertidig lagringsstruktur for rekursive operasjoner.
  2. Stack brukes også som Auxiliary Storage Structure for funksjonskall, nestede operasjoner og utsatte/utsatte funksjoner.
  3. Vi kan administrere funksjonsanrop ved å bruke Stacks.
  4. Stabler brukes også til å evaluere de aritmetiske uttrykkene i forskjellige programmeringsspråk.
  5. Stabler er også nyttige for å konvertere infix-uttrykk til postfix-uttrykk.
  6. Stabler lar oss sjekke uttrykkets syntaks i programmeringsmiljøet.
  7. Vi kan matche parenteser ved å bruke stabler.
  8. Stabler kan brukes til å snu en streng.
  9. Stabler er nyttige for å løse problemer basert på tilbakesporing.
  10. Vi kan bruke stabler i dybde-først-søk i graf- og tregjennomgang.
  11. Stabler brukes også i operativsystemfunksjoner.
  12. Stabler brukes også i UNDO- og REDO-funksjonene i en redigering.

4. Haler

EN er en lineær datastruktur som ligner på en stabel med noen begrensninger på innsetting og sletting av elementene. Innsettingen av et element i en kø gjøres i den ene enden, og fjerningen gjøres i en annen eller motsatt ende. Dermed kan vi konkludere med at Queue-datastrukturen følger FIFO-prinsippet (First In, First Out) for å manipulere dataelementene. Implementering av køer kan gjøres ved hjelp av matriser, lenkede lister eller stabler. Noen virkelige eksempler på køer er en kø ved billettskranken, en rulletrapp, en bilvask og mange flere.

En introduksjon til datastrukturer

Figur 7. Et virkelighetseksempel på kø

annet hvis java

Bildet ovenfor er en virkelig illustrasjon av en kinobillettskranke som kan hjelpe oss å forstå køen der kunden som kommer først alltid blir servert først. Kunden som kommer sist vil utvilsomt bli servert sist. Begge ender av køen er åpne og kan utføre forskjellige operasjoner. Et annet eksempel er en food court-linje hvor kunden settes inn fra bakenden mens kunden fjernes i frontenden etter å ha levert tjenesten de ba om.

Følgende er de primære operasjonene i køen:

    Kø:Innsetting eller tillegg av noen dataelementer til køen kalles Enqueue. Elementinnsettingen gjøres alltid ved hjelp av den bakre pekeren.Dekø:Sletting eller fjerning av dataelementer fra køen kalles Dequeue. Slettingen av elementet gjøres alltid ved hjelp av frontpekeren.
En introduksjon til datastrukturer

Figur 8.

Noen applikasjoner av køer:

  1. Køer brukes vanligvis i breddesøkeoperasjonen i Graphs.
  2. Køer brukes også i jobbplanleggingsoperasjoner av operativsystemer, som en tastaturbufferkø for å lagre tastene som trykkes av brukere og en utskriftsbufferkø for å lagre dokumentene som skrives ut av skriveren.
  3. Køer er ansvarlige for CPU-planlegging, jobbplanlegging og diskplanlegging.
  4. Prioritetskøer brukes i filnedlastingsoperasjoner i en nettleser.
  5. Køer brukes også til å overføre data mellom eksterne enheter og CPU.
  6. Køer er også ansvarlige for å håndtere avbrudd generert av brukerapplikasjonene for CPU.

Ikke-lineære datastrukturer

Ikke-lineære datastrukturer er datastrukturer der dataelementene ikke er ordnet i sekvensiell rekkefølge. Her er innsetting og fjerning av data ikke mulig på en lineær måte. Det eksisterer et hierarkisk forhold mellom de enkelte dataelementene.

Typer ikke-lineære datastrukturer

Følgende er listen over ikke-lineære datastrukturer som vi vanligvis bruker:

1. Trær

Et tre er en ikke-lineær datastruktur og et hierarki som inneholder en samling av noder slik at hver node i treet lagrer en verdi og en liste over referanser til andre noder ('barnene').

Tredatastrukturen er en spesialisert metode for å ordne og samle inn data i datamaskinen for å bli utnyttet mer effektivt. Den inneholder en sentral node, strukturelle noder og undernoder koblet via kanter. Vi kan også si at tredatastrukturen består av røtter, grener og blader koblet sammen.

En introduksjon til datastrukturer

Figur 9. Et tre

Trær kan deles inn i forskjellige typer:

    Binært tre:En tredatastruktur hvor hver overordnet node kan ha maksimalt to barn kalles et binært tre.Binært søketre:Et binært søketre er en tredatastruktur der vi enkelt kan opprettholde en sortert liste over tall.AVL-tre:Et AVL-tre er et selvbalanserende binært søketre der hver node opprettholder ekstra informasjon kjent som en balansefaktor hvis verdi er enten -1, 0 eller +1.B-tre:Et B-tre er en spesiell type selvbalanserende binært søketre hvor hver node består av flere nøkler og kan ha mer enn to barn.

Noen bruksområder for trær:

  1. Trær implementerer hierarkiske strukturer i datasystemer som kataloger og filsystemer.
  2. Trær brukes også til å implementere navigasjonsstrukturen til et nettsted.
  3. Vi kan generere kode som Huffmans kode ved å bruke Trees.
  4. Trær er også nyttige i beslutningstaking i spillapplikasjoner.
  5. Trær er ansvarlige for å implementere prioritetskøer for prioritetsbaserte OS-planleggingsfunksjoner.
  6. Trær er også ansvarlige for å analysere uttrykk og utsagn i kompilatorene til forskjellige programmeringsspråk.
  7. Vi kan bruke trær til å lagre datanøkler for indeksering for Database Management System (DBMS).
  8. Spanning Trees lar oss rute beslutninger i data- og kommunikasjonsnettverk.
  9. Trær brukes også i stifinningsalgoritmen implementert i applikasjoner for kunstig intelligens (AI), robotikk og videospill.

2. Grafer

En graf er et annet eksempel på en ikke-lineær datastruktur som omfatter et begrenset antall noder eller hjørner og kantene som forbinder dem. Grafene brukes til å adressere problemer i den virkelige verden der den betegner problemområdet som et nettverk som sosiale nettverk, kretsnettverk og telefonnettverk. For eksempel kan nodene eller toppunktene til en graf representere en enkelt bruker i et telefonnettverk, mens kantene representerer koblingen mellom dem via telefon.

Grafdatastrukturen, G regnes som en matematisk struktur som består av et sett med hjørner, V og et sett med kanter, E som vist nedenfor:

G = (V,E)

liste java
En introduksjon til datastrukturer

Figur 10. En graf

Figuren ovenfor representerer en graf med syv hjørner A, B, C, D, E, F, G og ti kanter [A, B], [A, C], [B, C], [B, D], [B, E], [C, D], [D, E], [D, F], [E, F] og [E, G].

Avhengig av plasseringen av toppunktene og kantene, kan grafene klassifiseres i forskjellige typer:

    Null graf:En graf med et tomt sett med kanter kalles en nullgraf.Triviell graf:En graf som bare har ett toppunkt kalles en trivial graf.Enkel graf:En graf med verken selvløkker eller flere kanter er kjent som en enkel graf.Multi Graph:En graf sies å være multi hvis den består av flere kanter, men ingen selvløkker.Pseudograf:En graf med selvløkker og flere kanter kalles en pseudograf.Ikke-rettet graf:En graf som består av ikke-rettede kanter er kjent som en ikke-rettet graf.Regissert graf:En graf som består av de rettede kantene mellom toppunktene er kjent som en rettet graf.Tilkoblet graf:En graf med minst en enkelt bane mellom hvert par av toppunkter kalles en koblet graf.Frakoblet graf:En graf der det ikke eksisterer noen bane mellom minst ett par hjørner, kalles en frakoblet graf.Vanlig graf:En graf der alle toppunkter har samme grad kalles en regulær graf.Komplett graf:En graf der alle toppunkter har en kant mellom hvert par av toppunkter er kjent som en komplett graf.Syklusgraf:En graf sies å være en syklus hvis den har minst tre hjørner og kanter som danner en syklus.Syklisk graf:En graf sies å være syklisk hvis og bare hvis minst en syklus eksisterer.Asyklisk graf:En graf med null sykluser kalles en asyklisk graf.Finitt graf:En graf med et begrenset antall hjørner og kanter er kjent som en endelig graf.Uendelig graf:En graf med et uendelig antall hjørner og kanter er kjent som en uendelig graf.Todelt graf:En graf der toppunktene kan deles inn i uavhengige sett A og B, og alle toppunktene til sett A bare skal kobles til toppunktene som er tilstede i sett B med noen kanter, kalles en todelt graf.Planar graf:En graf sies å være en plan hvis vi kan tegne den i et enkelt plan med to kanter som krysser hverandre.Euler-graf:En graf sies å være Euler hvis og bare hvis alle toppunktene er jevne grader.Hamiltonsk graf:En tilkoblet graf som består av en Hamiltonsk krets er kjent som en Hamiltonsk graf.

Noen bruksområder for grafer:

  1. Grafer hjelper oss med å representere ruter og nettverk i transport-, reise- og kommunikasjonsapplikasjoner.
  2. Grafer brukes til å vise ruter i GPS.
  3. Grafer hjelper oss også med å representere sammenkoblingene i sosiale nettverk og andre nettverksbaserte applikasjoner.
  4. Grafer brukes i kartleggingsapplikasjoner.
  5. Grafer er ansvarlige for representasjonen av brukerpreferanser i e-handelsapplikasjoner.
  6. Grafer brukes også i Utility-nettverk for å identifisere problemene for lokale eller kommunale selskaper.
  7. Grafer hjelper også med å administrere utnyttelsen og tilgjengeligheten av ressurser i en organisasjon.
  8. Grafer brukes også til å lage dokumentlenkekart over nettsidene for å vise tilkoblingen mellom sidene gjennom hyperkoblinger.
  9. Grafer brukes også i robotbevegelser og nevrale nettverk.

Grunnleggende operasjoner av datastrukturer

I den følgende delen vil vi diskutere de forskjellige typene operasjoner som vi kan utføre for å manipulere data i hver datastruktur:

    Traversering:Å krysse en datastruktur betyr å få tilgang til hvert dataelement nøyaktig én gang slik at det kan administreres. For eksempel kreves det traversering mens du skriver ut navnene på alle ansatte i en avdeling.Søk:Søk er en annen datastrukturoperasjon som betyr å finne plasseringen til ett eller flere dataelementer som oppfyller visse begrensninger. Et slikt dataelement kan være tilstede i det gitte settet med dataelementer. For eksempel kan vi bruke søkeoperasjonen til å finne navnene på alle de ansatte som har mer enn 5 års erfaring.Innsetting:Innsetting betyr å sette inn eller legge til nye dataelementer i samlingen. For eksempel kan vi bruke innsettingsoperasjonen til å legge til detaljene om en ny medarbeider selskapet nylig har ansatt.Sletting:Sletting betyr å fjerne eller slette et spesifikt dataelement fra den gitte listen over dataelementer. For eksempel kan vi bruke sletteoperasjonen til å slette navnet på en ansatt som har sluttet i jobben.Sortering:Sortering betyr å ordne dataelementene i enten stigende eller synkende rekkefølge avhengig av applikasjonstype. For eksempel kan vi bruke sorteringsoperasjonen til å ordne navnene på ansatte i en avdeling i alfabetisk rekkefølge eller estimere månedens tre beste utøvere ved å ordne de ansattes ytelse i synkende rekkefølge og trekke ut detaljene til de tre beste.Slå sammen:Slå sammen betyr å kombinere dataelementer fra to sorterte lister for å danne en enkelt liste over sorterte dataelementer.Skape:Create er en operasjon som brukes til å reservere minne for dataelementene i programmet. Vi kan utføre denne operasjonen ved å bruke en erklæring. Opprettelsen av datastruktur kan skje enten under følgende:
    1. Kompileringstid
    2. Kjøretid
      For eksempel malloc() funksjonen brukes i C Language for å lage datastruktur.
    Utvalg:Utvelgelse betyr å velge en bestemt data fra de tilgjengelige dataene. Vi kan velge hvilken som helst bestemt data ved å spesifisere betingelser inne i loopen.Oppdater:Oppdateringsoperasjonen lar oss oppdatere eller endre dataene i datastrukturen. Vi kan også oppdatere bestemte data ved å spesifisere noen forhold inne i sløyfen, som Selection-operasjonen.Splitting:Splittingsoperasjonen lar oss dele data inn i ulike underdeler, noe som reduserer den totale prosessfullføringstiden.

Forstå den abstrakte datatypen

I henhold til National Institute of Standards and Technology (NIST) , er en datastruktur et arrangement av informasjon, vanligvis i minnet, for bedre algoritmeeffektivitet. Datastrukturer inkluderer koblede lister, stabler, køer, trær og ordbøker. De kan også være en teoretisk enhet, som navnet og adressen til en person.

Fra definisjonen nevnt ovenfor kan vi konkludere med at operasjonene i datastruktur inkluderer:

  1. Et høyt nivå av abstraksjoner som tillegg eller sletting av et element fra en liste.
  2. Søke og sortere et element i en liste.
  3. Få tilgang til det høyeste prioriterte elementet i en liste.

Når datastrukturen utfører slike operasjoner, er den kjent som en Abstrakt datatype (ADT) .

Vi kan definere det som et sett med dataelementer sammen med operasjonene på dataene. Begrepet 'abstrakt' refererer til det faktum at dataene og de grunnleggende operasjonene som er definert på dem, studeres uavhengig av implementeringen. Det inkluderer hva vi kan gjøre med dataene, ikke hvordan vi kan gjøre det.

En ADI-implementering inneholder en lagringsstruktur for å lagre dataelementene og algoritmene for grunnleggende drift. Alle datastrukturene, som en matrise, koblet liste, kø, stabel, etc., er eksempler på ADT.

Forstå fordelene ved å bruke ADT

I den virkelige verden utvikler programmer seg som en konsekvens av nye begrensninger eller krav, så endring av et program krever vanligvis en endring i en eller flere datastrukturer. Anta for eksempel at vi ønsker å sette inn et nytt felt i en ansatts post for å holde styr på flere detaljer om hver ansatt. I så fall kan vi forbedre effektiviteten til programmet ved å erstatte en Array med en Linked-struktur. I en slik situasjon er det uegnet å omskrive hver prosedyre som bruker den modifiserte strukturen. Derfor er et bedre alternativ å skille en datastruktur fra implementeringsinformasjonen. Dette er prinsippet bak bruken av abstrakte datatyper (ADT).

Noen applikasjoner av datastrukturer

Følgende er noen applikasjoner av datastrukturer:

  1. Datastrukturer hjelper til med organiseringen av data i datamaskinens minne.
  2. Datastrukturer hjelper også med å representere informasjonen i databaser.
  3. Data Structures tillater implementering av algoritmer for å søke gjennom data (for eksempel søkemotor).
  4. Vi kan bruke datastrukturene til å implementere algoritmene for å manipulere data (for eksempel tekstbehandlere).
  5. Vi kan også implementere algoritmene for å analysere data ved hjelp av datastrukturer (for eksempel data miners).
  6. Datastrukturer støtter algoritmer for å generere data (for eksempel en tilfeldig tallgenerator).
  7. Datastrukturer støtter også algoritmer for å komprimere og dekomprimere dataene (for eksempel et zip-verktøy).
  8. Vi kan også bruke datastrukturer til å implementere algoritmer for å kryptere og dekryptere dataene (for eksempel et sikkerhetssystem).
  9. Ved hjelp av Data Structures kan vi bygge programvare som kan administrere filer og kataloger (For eksempel en filbehandler).
  10. Vi kan også utvikle programvare som kan gjengi grafikk ved hjelp av Data Structures. (For eksempel en nettleser eller 3D-gjengivelsesprogramvare).

Bortsett fra de, som nevnt tidligere, er det mange andre applikasjoner av Data Structures som kan hjelpe oss å bygge hvilken som helst ønsket programvare.