Graf datastruktur och Algorithms (Exempel)
โก Smart sammanfattning
Grafdatastruktur รคr en icke-linjรคr samling av noder och kanter dรคr varje kant lรคnkar samman ett par noder. Grafer modellerar verkliga nรคtverk som kartor, sociala kontakter och webbsidor, och stรถder mรฅnga kraftfulla algoritmer.

Vad รคr en graf i datastruktur?
En graf รคr en icke-linjรคr datastruktur som bestรฅr av noder och kanter, dรคr noder innehรฅller informationen eller data, och kanterna fungerar som en lรคnk mellan ett par noder.
Det anvรคnds fรถr att lรถsa verkliga problem, som att hitta den bรคsta vรคgen till destinationen och vรคgen fรถr telekommunikation och sociala nรคtverk. Anvรคndare betraktas som en nod i grafen, och ledningarna รคr kanterna som fรถrbinder anvรคndarna.
Om kanter representeras som E och hรถrn representeras som V, sรฅ kan grafen G skrivas som en uppsรคttning av hรถrn och kanter, som t.ex. G (V, E).
Exempel pรฅ graf i datastruktur
Hรคr รคr ett enkelt exempel pรฅ en grafdatastruktur:
Det รคr en enkel oriktad graf (en typ av graf). Hรคr รคr mรคngden av noder: {A, B, C, D, E, F}. Tvรฅ noder skapar en kant. Till exempel รคr A och B lรคnkade med en kant. Dรคremot รคr A och F inte lรคnkade med nรฅgra kanter.
Grafterminologier i datastruktur
Fรถljande รคr nรฅgra viktiga termer som anvรคnds i grafdatastrukturen:
| Termin | BESKRIVNING |
|---|---|
| Vertex | Varje dataelement kallas en nod eller en nod. I bilden ovan รคr A, B, C, D och E noderna. |
| Kant (bรฅge) | Fรถrbindande lรคnkar mellan tvรฅ noder eller noder kallas en kant (Arc). Den har tvรฅ รคndar och representeras som (startingVertex, endingVertex). |
| Oriktad kant | Det รคr en dubbelriktad kant. |
| Regisserad Edge | Det รคr en enkelriktad kant. |
| Viktad kant | En fรถrdel med ett vรคrde pรฅ sig. |
| Examen | I en graf kallas antalet kanter som รคr fรถrbundna med ett hรถrn fรถr en grad. |
| Indegree | Det totala antalet inkommande kanter kopplade till en vertex. |
| Utgradig | Det totala antalet utgรฅende kanter kopplade till en vertex. |
| Sjรคlvslinga | En kant kallas en sjรคlvslinga om dess tvรฅ รคndpunkter sammanfaller. |
| Nรคrhet | Nomter sรคgs vara intilliggande om en kant รคr fรถrbunden mellan dem. |
Typer av grafer i datastruktur
Hรคr รคr listan รถver de vanligaste typer av grafer i datastrukturen:
- Regisserad graf
- Oriktad graf
- Viktad graf
- Dubbelriktad graf
- Oรคndlig graf
- Null graf
- Trivial graf
- Multi Graph
- Komplett graf
- Ansluten graf
- Cyklisk graf
- Regisserad acyklisk graf (DAG)
- Cykeldiagram
- Bipartitgraf
- Euler graf
- Hamilton graf
Hur representerar man en graf i en datastruktur?
En graf lagras vanligtvis i minnet med hjรคlp av en av tvรฅ representationer. Valet pรฅverkar hur mycket minne grafen anvรคnder och hur snabbt vanliga operationer kรถrs.
- Nรคrhetsmatris: En tvรฅdimensionell V ร V-matris dรคr cell [i][j] รคr 1 (eller kantvikten) om en kant finns mellan hรถrn i och hรถrn j, och 0 annars. Den tillรฅter O(1) kantsรถkning men anvรคnder O(Vยฒ)-utrymme, vilket gรถr den bรคst fรถr tรคta grafer.
- Angrรคnsande lista: En array av listor dรคr varje nodpunkt lagrar en lista รถver sina angrรคnsande noder. Den anvรคnder O(V + E)-utrymme och รคr effektiv fรถr glesa grafer, vilket รคr anledningen till att de flesta verkliga grafer anvรคnder den.
Du kan lรคsa mer om dessa i adjacenslista och matrisrepresentation av en graf handledning.
Tillรคmpningar av grafdatastruktur
En graf har mรฅnga anvรคndningsomrรฅden. Det finns mรฅnga algoritmer som anvรคnder grafer. Hรคr รคr nรฅgra av grafens tillรคmpningar:
- Google Maps anvรคnder grafer fรถr att hitta korsningen mellan tvรฅ vรคgar och berรคkna avstรฅndet mellan tvรฅ platser. Till exempel, Dijkstra, fรถr att hitta det kortaste avstรฅndet mellan kรคllan och destinationsplatsen.
- Facebook anvรคnder grafer fรถr att hitta anvรคndarnas gemensamma vรคnner. Dess algoritm betraktar varje anvรคndare som en nod i en graf.
- Fรถr resursallokering anvรคnds en DAG (Directed Acyclic Graph). Den kontrollerar resursernas beroende.
- Ocuco-landskapet Google Sรถkmotorer anvรคnder grafer fรถr att skapa rankningen fรถr webbplatser.
- En kartaping Enheten anvรคnder grafdatastrukturen.
- A router och dess protokoll anvรคnder grafen fรถr att lรคra sig vรคgen till destinationen.

