Hva er datastruktur:
En datastruktur er en lagring som brukes til å lagre og organisere data. Det er en måte å ordne data på en datamaskin slik at de kan nås og oppdateres effektivt.
En datastruktur brukes ikke bare for å organisere dataene. Den brukes også til å behandle, hente og lagre data. Ulike grunnleggende og avanserte typer datastrukturer brukes i nesten alle programmer eller programvaresystemer som er utviklet. Så vi må ha god kunnskap om datastrukturer.
Datastrukturer er en integrert del av datamaskiner som brukes til å arrangere data i minnet. De er viktige og ansvarlige for å organisere, behandle, få tilgang til og lagre data effektivt. Men dette er ikke alt. Ulike typer datastrukturer har sine egenskaper, funksjoner, applikasjoner, fordeler og ulemper. Så hvordan identifiserer du en datastruktur som er egnet for en bestemt oppgave? Hva menes med begrepet 'datastruktur'? Hvor mange typer datastrukturer finnes det og hva brukes de til?

Hva er datastruktur: typer, klassifikasjoner og applikasjoner
Vi har dekket deg. Vi har laget en komplett liste over alt om hva datastruktur er, hva slags datastrukturer er, klassifiseringen av datastrukturer, applikasjonene til hver datastruktur, og så videre. I denne artikkelen vil vi diskutere alle aspekter av hver datastruktur for å hjelpe deg å velge den beste på få minutter.
Innholdsfortegnelse
- Hva er datastruktur?
- Hvordan varierer datastrukturen fra datatypen?
- Klassifisering av datastruktur
- Matriser
- Koblet liste
- Stable
- Kø
- Tre
- Kurve
- Konklusjon
Hvordan datastruktur varierer fra datatype:
Vi har allerede lært om datastruktur. Mange ganger er det som skjer at folk blir forvirret mellom datatype og datastruktur. Så la oss se noen forskjeller mellom datatype og datastruktur for å gjøre det klart.
Data-type | Data struktur |
---|---|
Datatypen er formen til en variabel som en verdi kan tilordnes. Den definerer at den bestemte variabelen kun vil tildele verdiene for den gitte datatypen. | Datastruktur er en samling av ulike typer data. Hele dataene kan representeres ved hjelp av et objekt og kan brukes gjennom hele programmet. |
Den kan inneholde verdi, men ikke data. Derfor er den dataløs. | Den kan inneholde flere typer data innenfor et enkelt objekt. |
Implementeringen av en datatype er kjent som abstrakt implementering. zip-kommando i linux | Datastrukturimplementering er kjent som konkret implementering. |
Det er ingen tidskompleksitet når det gjelder datatyper. | I datastrukturobjekter spiller tidskompleksitet en viktig rolle. |
Når det gjelder datatyper, lagres ikke verdien av data fordi den kun representerer typen data som kan lagres. | Mens når det gjelder datastrukturer, får dataene og dens verdi plass i datamaskinens hovedminne. En datastruktur kan også inneholde forskjellige typer og typer data innenfor ett enkelt objekt. |
Eksempler på datatyper er int, float, double, etc. | Eksempler på datastruktur er stabel, kø, tre osv. |
Klassifisering av datastruktur:
Datastruktur har mange forskjellige bruksområder i vårt daglige liv. Det er mange forskjellige datastrukturer som brukes til å løse ulike matematiske og logiske problemer. Ved å bruke datastruktur kan man organisere og behandle svært store datamengder i løpet av en relativt kort periode. La oss se på forskjellige datastrukturer som brukes i forskjellige situasjoner.

Klassifisering av datastruktur
- Lineær datastruktur: Datastruktur der dataelementer er ordnet sekvensielt eller lineært, hvor hvert element er knyttet til dets forrige og neste tilstøtende elementer, kalles en lineær datastruktur.
Eksempler på lineære datastrukturer er array, stack, queue, linked list, etc.- Statisk datastruktur: Statisk datastruktur har en fast minnestørrelse. Det er lettere å få tilgang til elementene i en statisk datastruktur.
Et eksempel på denne datastrukturen er en matrise. - Dynamisk datastruktur: I den dynamiske datastrukturen er ikke størrelsen fast. Den kan oppdateres tilfeldig i løpet av kjøretiden, noe som kan betraktes som effektivt når det gjelder minnekompleksiteten til koden.
Eksempler på denne datastrukturen er kø, stack osv.
- Statisk datastruktur: Statisk datastruktur har en fast minnestørrelse. Det er lettere å få tilgang til elementene i en statisk datastruktur.
- Ikke-lineær datastruktur: Datastrukturer der dataelementer ikke er plassert sekvensielt eller lineært kalles ikke-lineære datastrukturer. I en ikke-lineær datastruktur kan vi ikke krysse alle elementene i en enkelt kjøring.
Eksempler på ikke-lineære datastrukturer er trær og grafer.
Behov for datastruktur:
Strukturen til dataene og syntesen av algoritmen er i forhold til hverandre. Datapresentasjonen må være lett å forstå slik at utvikleren, så vel som brukeren, kan foreta en effektiv implementering av operasjonen.
Datastrukturer gir en enkel måte å organisere, hente, administrere og lagre data på.
Her er en liste over behov for data.
- Det er enkelt å endre datastruktur.
- Det krever mindre tid.
- Spar lagringsplass.
- Datarepresentasjon er enkelt.
- Enkel tilgang til den store databasen.
Matriser:
En matrise er en lineær datastruktur og det er en samling av elementer som er lagret på sammenhengende minneplasseringer. Tanken er å lagre flere gjenstander av samme type sammen på ett sted. Den tillater behandling av en stor mengde data på relativt kort tid. Det første elementet i arrayen er indeksert med et subscript på 0. Det er forskjellige operasjoner mulig i en array, som søking, sortering, innsetting, traversering, reversering og sletting.

Array
Kjennetegn ved en matrise:
En matrise har forskjellige egenskaper som er som følger:
mycricketlive
- Matriser bruker en indeksbasert datastruktur som hjelper til med å identifisere hvert av elementene i en matrise enkelt ved å bruke indeksen.
- Hvis en bruker ønsker å lagre flere verdier av samme datatype, kan arrayet brukes effektivt.
- En matrise kan også håndtere komplekse datastrukturer ved å lagre data i en todimensjonal matrise.
- En matrise brukes også til å implementere andre datastrukturer som stabler, køer, heaps, hash-tabeller, etc.
- Søkeprosessen i en matrise kan gjøres veldig enkelt.
Operasjoner utført på array:
- Initialisering : En matrise kan initialiseres med verdier på tidspunktet for erklæringen eller senere ved å bruke en tilordningssetning.
- Tilgang til elementer: Elementer i en matrise kan nås med deres indeks, som starter fra 0 og går opp til størrelsen på matrisen minus én.
- Søker etter elementer : Matriser kan søkes etter et spesifikt element ved hjelp av lineært søk eller binære søkealgoritmer.
- Sortering av elementer : Elementer i en matrise kan sorteres i stigende eller synkende rekkefølge ved hjelp av algoritmer som boblesortering, innsettingssortering eller hurtigsortering.
- Sette inn elementer: Elementer kan settes inn i en matrise på et bestemt sted, men denne operasjonen kan være tidkrevende fordi den krever forskyvning av eksisterende elementer i matrisen.
- Sletting av elementer: Elementer kan slettes fra en matrise ved å flytte elementene som kommer etter den for å fylle gapet.
- Oppdaterer elementer: Elementer i en matrise kan oppdateres eller endres ved å tilordne en ny verdi til en bestemt indeks.
- Gjennomgående elementer: Elementene i en matrise kan krysses i rekkefølge ved å besøke hvert element én gang.
Dette er noen av de vanligste operasjonene som utføres på arrays. De spesifikke operasjonene og algoritmene som brukes kan variere basert på kravene til problemet og programmeringsspråket som brukes.
Applikasjoner av Array:
Ulike anvendelser av en matrise er som følger:
- En matrise brukes til å løse matriseproblemer.
- Databaseposter implementeres også av en matrise.
- Det hjelper med å implementere en sorteringsalgoritme.
- Den brukes også til å implementere andre datastrukturer som stabler, køer, heaps, hash-tabeller, etc.
- En matrise kan brukes til CPU-planlegging.
- Kan brukes som oppslagstabell i datamaskiner.
- Matriser kan brukes i talebehandling der hvert talesignal er en matrise.
- Skjermen på datamaskinen vises også av en matrise. Her bruker vi en flerdimensjonal matrise.
- Arrayen brukes i mange styringssystemer som et bibliotek, studenter, parlament, etc.
- Arrayen brukes i det elektroniske billettbestillingssystemet. Kontakter på en mobiltelefon vises av denne matrisen.
- I spill som online sjakk, hvor spilleren kan lagre sine tidligere trekk så vel som nåværende trekk. Det indikerer et snev av posisjon.
- For å lagre bilder i en bestemt dimensjon i Android Like 360*1200
Virkelige applikasjoner av Array:
- En matrise brukes ofte til å lagre data for matematiske beregninger.
- Den brukes i bildebehandling.
- Det brukes også i journalhåndtering.
- Boksider er også virkelige eksempler på en rekke.
- Den brukes også til å bestille bokser.
Vil du komme i gang med arrays? Du kan prøve våre kuraterte artikler og lister for den beste praksisen:
- Introduksjon til Array Data Structure
- Topp 50 array-kodingsproblemer for intervjuer
- Øv Array-problem på techcodeview.com
Koblet liste:
En koblet liste er en lineær datastruktur der elementer ikke er lagret på sammenhengende minneplasseringer. Elementene i en koblet liste er koblet ved hjelp av pekere som vist i bildet nedenfor:
Typer koblede lister:
- Enkeltlenket liste
- Dobbeltlenket liste
- Sirkulær lenket liste
- Dobbelt sirkulær lenket liste

Koblet liste
Kjennetegn ved en koblet liste:
En koblet liste har forskjellige egenskaper som er som følger:
- En koblet liste bruker ekstra minne til å lagre koblinger.
- Under initialiseringen av den koblede listen er det ikke nødvendig å vite størrelsen på elementene.
- Koblede lister brukes til å implementere stabler, køer, grafer, etc.
- Den første noden på den koblede listen kalles hodet.
- Den neste pekeren til den siste noden peker alltid på NULL.
- I en koblet liste er innsetting og sletting lett mulig.
- Hver node i den koblede listen består av en peker/lenke som er adressen til neste node.
- Koblede lister kan enkelt krympe eller vokse når som helst.
Operasjoner utført på koblet liste:
En koblet liste er en lineær datastruktur der hver node inneholder en verdi og en referanse til neste node. Her er noen vanlige operasjoner som utføres på koblede lister:
- Initialisering: En koblet liste kan initialiseres ved å opprette en hodenode med en referanse til den første noden. Hver påfølgende node inneholder en verdi og en referanse til neste node.
- Sette inn elementer: Elementer kan settes inn ved hodet, halen eller på en bestemt posisjon i den koblede listen.
- Sletting av elementer : Elementer kan slettes fra den koblede listen ved å oppdatere referansen til forrige node til å peke til neste node, og effektivt fjerne gjeldende node fra listen.
- Søker etter elementer : Koblede lister kan søkes etter et spesifikt element ved å starte fra hodenoden og følge referansene til de neste nodene til ønsket element er funnet.
- Oppdatering av elementer : Elementer i en koblet liste kan oppdateres ved å endre verdien til en spesifikk node.
- Gjennomgående elementer: Elementene i en koblet liste kan krysses ved å starte fra hodenoden og følge referansene til de neste nodene til slutten av listen er nådd.
- Reversere en koblet liste : Den koblede listen kan reverseres ved å oppdatere referansene til hver node slik at de peker til forrige node i stedet for neste node.
Dette er noen av de vanligste operasjonene som utføres på koblede lister. De spesifikke operasjonene og algoritmene som brukes kan variere basert på kravene til problemet og programmeringsspråket som brukes.
Applikasjoner for den koblede listen:
Ulike anvendelser av koblede lister er som følger:
- Koblede lister brukes til å implementere stabler, køer, grafer, etc.
- Koblede lister brukes til å utføre aritmetiske operasjoner på lange heltall.
- Det brukes til representasjon av sparsomme matriser.
- Den brukes i den koblede tildelingen av filer.
- Det hjelper med minnehåndtering.
- Den brukes i representasjonen av polynommanipulasjon der hvert polynomledd representerer en node i den koblede listen.
- Koblede lister brukes til å vise bildebeholdere. Brukere kan besøke tidligere, nåværende og neste bilder.
- De brukes til å lagre historien til den besøkte siden.
- De brukes til å utføre angreoperasjoner.
- Linked brukes i programvareutvikling der de angir riktig syntaks til en tag.
- Koblede lister brukes til å vise feeds for sosiale medier.
Virkelige applikasjoner for en koblet liste:
- En koblet liste brukes i Round-Robin-planlegging for å holde styr på turn i flerspillerspill.
- Den brukes i bildeviser. De forrige og neste bildene er koblet sammen, og kan derfor nås med forrige og neste-knappene.
- I en musikkspilleliste er sanger knyttet til forrige og neste sang.
Vil du komme i gang med en lenket liste? Du kan prøve våre kuraterte artikler og lister for den beste praksisen:
- Introduksjon til Linked List Data Structure
- Topp 20 lenket liste Intervjuspørsmål
- Øv på linket listeproblem på techcodeview.com
Stable:
Stack er en lineær datastruktur som følger en bestemt rekkefølge operasjonene utføres i. Bestillingen er LIFO(sist inn først ut) . Det er kun mulig å legge inn og hente data fra den ene enden. Inntasting og henting av data kalles også push- og pop-operasjon i en stabel. Det er forskjellige operasjoner mulig i en stabel som å reversere en stabel ved å bruke rekursjon, sortering, slette midtelementet i en stabel, etc.
Stable
Egenskaper til en stabel:
Stack har flere forskjellige egenskaper som er som følger:
- Stack brukes i mange forskjellige algoritmer som Tower of Hanoi, trekryssing, rekursjon, etc.
- Stack implementeres gjennom en matrise eller koblet liste.
- Den følger sist inn først ut-operasjonen, dvs. et element som settes inn først vil komme inn sist og omvendt.
- Innsettingen og slettingen utføres i den ene enden, dvs. fra toppen av stabelen.
- I stabel, hvis den tildelte plassen for stabelen er full, og fortsatt noen prøver å legge til flere elementer, vil det føre til stabeloverflyt.
Anvendelser av stabel:
Ulike anvendelser av Stack er som følger:
- Stabeldatastrukturen brukes i evaluering og konvertering av aritmetiske uttrykk.
- Den brukes til parenteskontroll.
- Mens du snur en streng, brukes stabelen også.
- Stack brukes i minneadministrasjon.
- Den brukes også til å behandle funksjonsanrop.
- Stakken brukes til å konvertere uttrykk fra infix til postfix.
- Stabelen brukes til å utføre angre- og gjøre om-operasjoner i tekstbehandlere.
- Stabelen brukes i virtuelle maskiner som JVM.
- Stabelen brukes i mediespillerne. Nyttig for å spille av neste og forrige sang.
- Stabelen brukes i rekursjonsoperasjoner.
Operasjon utført på stabel ;
En stabel er en lineær datastruktur som implementerer Last-In-First-Out (LIFO)-prinsippet. Her er noen vanlige operasjoner som utføres på stabler:
- Trykk : Elementer kan skyves på toppen av stabelen, og legge til et nytt element til toppen av stabelen.
- Pop : Toppelementet kan fjernes fra stabelen ved å utføre en pop-operasjon, som effektivt fjerner det siste elementet som ble skjøvet inn i stabelen.
- Kikk: Toppelementet kan inspiseres uten å fjerne det fra stabelen ved hjelp av en kikkoperasjon.
- Er tom : En sjekk kan gjøres for å finne ut om stabelen er tom.
- Størrelse : Antall elementer i stabelen kan bestemmes ved hjelp av en størrelsesoperasjon.
Dette er noen av de vanligste operasjonene som utføres på stabler. De spesifikke operasjonene og algoritmene som brukes kan variere basert på kravene til problemet og programmeringsspråket som brukes. Stabler brukes ofte i applikasjoner som å evaluere uttrykk, implementere funksjonskallstabler i dataprogrammer og mange andre.
Virkelige anvendelser av stabel:
- Eksempler fra det virkelige liv på en stabel er laget med spisetallerkener arrangert over hverandre. Når du fjerner en plate fra haugen, kan du ta platen til toppen av haugen. Men dette er akkurat den platen som sist ble lagt i bunken. Hvis du vil ha platen i bunnen av haugen, må du fjerne alle platene på toppen av den for å nå den.
- Nettlesere bruker stabeldatastrukturer for å holde styr på tidligere besøkte nettsteder.
- Samtalelogg på mobil bruker også stackdatastruktur.
Vil du komme i gang med Stack? Du kan prøve våre kuraterte artikler og lister for den beste praksisen:
np.null
- Øv stakkproblem på techcodeview.com
Kø:
Kø er en lineær datastruktur som følger en bestemt rekkefølge operasjonene utføres i. Bestillingen er Først inn først ut (FIFO) dvs. dataelementet som er lagret først, vil bli åpnet først. I dette gjøres inntasting og henting av data ikke kun fra den ene enden. Et eksempel på en kø er en hvilken som helst kø av forbrukere for en ressurs der forbrukeren som kom først blir servert først. Ulike operasjoner utføres på en kø som å reversere en kø (med eller uten bruk av rekursjon), å reversere de første K-elementene i en kø, osv. Noen få grunnleggende operasjoner som utføres i kø er kø, dekø, foran, bak osv.

Kø
Kjennetegn ved en kø:
Køen har forskjellige egenskaper som er som følger:
- Køen er en FIFO-struktur (First In First Out).
- For å fjerne det siste elementet i køen, må alle elementene som er satt inn før det nye elementet i køen fjernes.
- En kø er en ordnet liste over elementer av lignende datatyper.
Applikasjoner av kø:
Ulike applikasjoner av kø er som følger:
- Kø brukes til å håndtere nettstedtrafikk.
- Det hjelper å opprettholde spillelisten i mediespillere.
- Kø brukes i operativsystemer for å håndtere avbrudd.
- Det hjelper med å betjene forespørsler på en enkelt delt ressurs, som en skriver, CPU-oppgaveplanlegging, etc.
- Den brukes i asynkron overføring av data f.eks. rør, fil IO og stikkontakter.
- Køer brukes til jobbplanlegging i operativsystemet.
- I sosiale medier for å laste opp flere bilder eller videoer brukes køen.
- For å sende en e-postkø brukes datastruktur.
- For å håndtere nettstedtrafikk på et tidspunkt brukes køer.
- I Windows-operativsystemet, for å bytte flere applikasjoner.
Operasjon utført i kø:
En kø er en lineær datastruktur som implementerer First-In-First-Out (FIFO)-prinsippet. Her er noen vanlige operasjoner som utføres på køer:
- Kø : Elementer kan legges til bak i køen, og legge til et nytt element på slutten av køen.
- Tilsvarende : Frontelementet kan fjernes fra køen ved å utføre en dequeue-operasjon, som effektivt fjerner det første elementet som ble lagt til køen.
- Kikk : Frontelementet kan inspiseres uten å fjerne det fra køen ved hjelp av en kikkoperasjon.
- Er tom : En sjekk kan gjøres for å finne ut om køen er tom.
- Størrelse : Antall elementer i køen kan bestemmes ved hjelp av en størrelsesoperasjon.
Dette er noen av de vanligste operasjonene som utføres på køer. De spesifikke operasjonene og algoritmene som brukes kan variere basert på kravene til problemet og programmeringsspråket som brukes. Køer brukes ofte i applikasjoner som å planlegge oppgaver, administrere kommunikasjon mellom prosesser og mange andre.
Virkelige applikasjoner av kø:
- Et eksempel på en kø i den virkelige verden er en enkeltfelts enveiskjørt vei, hvor kjøretøyet som kjører inn først, kjører ut først.
- Et mer virkelighetseksempel kan sees i køen ved billettlukene.
- En kasselinje i en butikk er også et eksempel på kø.
- Folk i en rulletrapp
Vil du komme i gang med Queue? Du kan prøve våre kuraterte artikler og lister for den beste praksisen:
- Praksiskøproblem på techcodeview.com
Tre:
Et tre er en ikke-lineær og hierarkisk datastruktur der elementene er ordnet i en trelignende struktur. I et tre kalles den øverste noden rotnoden. Hver node inneholder noen data, og data kan være av hvilken som helst type. Den består av en sentral node, strukturelle noder og undernoder som er koblet sammen via kanter. Ulike tredatastrukturer gir raskere og enklere tilgang til dataene da det er en ikke-lineær datastruktur. Et tre har forskjellige terminologier som Node, Rot, Edge, Høyde på et tre, Grad av et tre, etc.
Det finnes forskjellige typer trelignende

Tre
Egenskaper til et tre:
Treet har forskjellige egenskaper som er som følger:
- Et tre er også kjent som en rekursiv datastruktur.
- I et tre kan høyden på roten defineres som den lengste veien fra rotnoden til bladnoden.
- I et tre kan man også beregne dybden fra toppen til en hvilken som helst node. Rotnoden har en dybde på 0.
Anvendelser av tre:
Ulike bruksområder for Tree er som følger:
- Heap er en tredatastruktur som implementeres ved hjelp av matriser og brukes til å implementere prioriterte køer.
- B-Tree og B+ Tree brukes til å implementere indeksering i databaser.
- Syntax Tree hjelper med skanning, parsing, generering av kode og evaluering av aritmetiske uttrykk i kompilatordesign.
- K-D Tree er et rompartisjoneringstre som brukes til å organisere punkter i K-dimensjonalt rom.
- Spanning-trær brukes i rutere i datanettverk.
Operasjon utført på treet:
Et tre er en ikke-lineær datastruktur som består av noder forbundet med kanter. Her er noen vanlige operasjoner utført på trær:
- Innsetting : Nye noder kan legges til treet for å lage en ny gren eller for å øke høyden på treet.
- Sletting : Noder kan fjernes fra treet ved å oppdatere referansene til overordnet node for å fjerne referansen til gjeldende node.
- Søk : Elementer kan søkes etter i et tre ved å starte fra rotnoden og krysse treet basert på verdien til gjeldende node til ønsket node er funnet.
- Traversering : Elementene i et tre kan krysses på flere forskjellige måter, inkludert i rekkefølge, forhåndsbestilling og etterbestilling.
- Høyde : Høyden på treet kan bestemmes ved å telle antall kanter fra rotnoden til den lengste bladnoden.
- Dybde : Dybden til en node kan bestemmes ved å telle antall kanter fra rotnoden til den gjeldende noden.
- Balansering : Treet kan balanseres for å sikre at høyden på treet minimeres og fordelingen av noder er så jevn som mulig.
Dette er noen av de vanligste operasjonene som utføres på trær. De spesifikke operasjonene og algoritmene som brukes kan variere basert på kravene til problemet og programmeringsspråket som brukes. Trær brukes ofte i applikasjoner som søk, sortering og lagring av hierarkiske data.
Virkelige anvendelser av tre:
- I det virkelige liv hjelper tredatastrukturen i spillutvikling.
- Det hjelper også med å indeksere i databaser.
- Et beslutningstre er et effektivt maskinlæringsverktøy, ofte brukt i beslutningsanalyse. Den har en flytskjemalignende struktur som hjelper til med å forstå data.
- Domain Name Server bruker også en tredatastruktur.
- Den vanligste bruken av et tre er alle sosiale nettverkssider.
Vil du komme i gang med Tree? Du kan prøve våre kuraterte artikler og lister for den beste praksisen:
- Topp 50 treintervjuspørsmål
- Practice Tree problem på techcodeview.com
Kurve:
En graf er en ikke-lineær datastruktur som består av toppunkter (eller noder) og kanter. Den består av et begrenset sett med hjørner og sett med kanter som forbinder et par noder. Grafen brukes til å løse de mest utfordrende og komplekse programmeringsproblemene. Den har forskjellige terminologier som er bane, grad, tilstøtende hjørner, tilkoblede komponenter, etc.

Kurve
Egenskaper til grafen:
Grafen har forskjellige egenskaper som er som følger:
- Den maksimale avstanden fra et toppunkt til alle de andre toppunktene regnes som eksentrisiteten til det toppunktet.
- Toppunktet med minimum eksentrisitet regnes som det sentrale punktet i grafen.
- Minimumsverdien av eksentrisitet fra alle hjørner regnes som radiusen til en tilkoblet graf.
Anvendelser av graf:
Ulike anvendelser av grafer er som følger:
- Grafen brukes til å representere flyten av beregninger.
- Det brukes i modellering av grafer.
- Operativsystemet bruker ressursallokeringsgraf.
- Brukes også i World Wide Web hvor nettsidene representerer nodene.
Operasjon utført på Graph:
En graf er en ikke-lineær datastruktur som består av noder og kanter. Her er noen vanlige operasjoner som utføres på grafer:
- Legg til verteks: Nye hjørner kan legges til grafen for å representere en ny node.
- Legg til Edge: Kanter kan legges til mellom hjørnene for å representere et forhold mellom noder.
- Fjern Vertex : Toppunkter kan fjernes fra grafen ved å oppdatere referansene til tilstøtende toppunkter for å fjerne referansen til gjeldende toppunkt.
- Fjern Edge : Kanter kan fjernes ved å oppdatere referansene til de tilstøtende hjørnene for å fjerne referansen til gjeldende kant.
- Depth-First Search (DFS) : En graf kan krysses ved å bruke et dybde-først-søk ved å besøke hjørnene på en dybde-først måte.
- B readth-First Search (BFS): En graf kan krysses ved å bruke et bredde-først-søk ved å besøke hjørnene på en bredde-først måte.
- Korteste vei: Den korteste veien mellom to hjørner kan bestemmes ved hjelp av algoritmer som Dijkstras algoritme eller A*-algoritme.
- Tilkoblede komponenter : De tilkoblede komponentene i en graf kan bestemmes ved å finne sett med toppunkter som er koblet til hverandre, men ikke til noen andre toppunkter i grafen.
- Syklusdeteksjon : Sykluser i en graf kan oppdages ved å se etter bakkanter under et dybde-først-søk.
Dette er noen av de vanligste operasjonene som utføres på grafer. De spesifikke operasjonene og algoritmene som brukes kan variere basert på kravene til problemet og programmeringsspråket som brukes. Grafer brukes ofte i applikasjoner som datanettverk, sosiale nettverk og rutingproblemer.
Virkelige anvendelser av grafer:
- Et av de vanligste eksemplene på en graf i den virkelige verden er Google Maps der byer er plassert som hjørner og stier som forbinder disse hjørnene er plassert som kanter på grafen.
- Et sosialt nettverk er også et eksempel fra den virkelige verden på en graf der hver person på nettverket er en node, og alle vennskapene deres på nettverket er kantene på grafen.
- En graf brukes også til å studere molekyler i fysikk og kjemi.
Vil du komme i gang med Graph? Du kan prøve våre kuraterte artikler og lister for den beste praksisen:
med full form
- Introduksjon til grafdatastruktur
- Topp 50 grafintervjuspørsmål
- Practice Graph problem på techcodeview.com
Fordeler med datastruktur:
- Forbedret dataorganisering og lagringseffektivitet.
- Raskere datainnhenting og manipulering.
- Forenkler utformingen av algoritmer for å løse komplekse problemer.
- Forenkler oppgaven med å oppdatere og vedlikeholde dataene.
- Gir en bedre forståelse av forholdet mellom dataelementer.
Ulempen med datastruktur:
- Økt beregnings- og minneoverhead.
- Vanskeligheter med å designe og implementere komplekse datastrukturer.
- Begrenset skalerbarhet og fleksibilitet.
- Kompleksitet i feilsøking og testing.
- Vanskeligheter med å endre eksisterende datastrukturer.
Henvisning:
Datastrukturer kan finnes i ulike lærebøker i informatikk og nettressurser. Noen populære tekster inkluderer:
- Introduksjon til algoritmer av Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest og Clifford Stein.
- Datastrukturer og algoritmeanalyse i Java av Mark Allen Weiss.
- The Algorithm Design Manual av Steven S. Skiena.
- Nettressurser som Coursera, Udemy og Khan Academy tilbyr også kurs om datastrukturer og algoritmer.
Konklusjon
Selv om dette er de mest kjente og brukte datastrukturene, er det også noen andre former for datastrukturer som brukes i informatikk, som f.eks. policybaserte datastrukturer , osv. Men uansett hvilken datastruktur du velger, har hver enkelt sine fordeler og ulemper, uten kunnskap om hvilke, kan det være svært kostbart å velge feil type datastruktur. Så det er veldig viktig å forstå behovet i situasjonen, og deretter bestemme hvilken type datastruktur som passer best for jobben.