# Programmeringsgränssnittet för grafer

Dialogrutan för datastrukturegenskaper gör det möjligt att anpassa inställningar som är specifika för grafgränssnittet. Där kan du använda Graftyp för att välja grafens typ. Betydelsen av typerna är följande:

- Graf: Graf där samma bågar (med avseende på start- och slutpunkt) inte får finnas flera gånger.

- Multigraf: Graf där likadana bågar (med avseende på start- och slutpunkt) kan finnas flera gånger.

## Grafdatastruktur

Ett grafobjekt innehåller information om en datastruktur av typen Graph.

### Egenskaper

- name

  Den här datastrukturens unika namn.

### Metoder

nodes()

- Returnera en lista med alla noder i grafen.

      array nodes

nodes(typ)

- Returnera en lista med alla noder i grafen av angiven typ.

      array nodes int typ

edges()

- Returnera en lista med alla bågar i grafen.

      array edges

edges(typ)

- Returnera en lista med alla bågar i grafen av angiven typ.

      array edges int typ

createNode(typ)

- Skapar en ny nod med den angivna typen och returnerar den skapade noden. Om typen inte är registrerad, skapas inte någon nod.

      GraphNode createNode int typ

createNode()

- Skapar en ny nod med förvald typ och returnerar den skapade noden.

      GraphNode createNode

createEdge(från, till, typ)

- Skapar en båge från noden "from" till noden "to" med den angivna typen och returnerar den skapade bågen Om typen inte är registrerad, skapas inte någon båge.

      GraphEdge createEdge GraphNode from GraphNode to int typ

createEdge(från, till)

- Skapar en båge från noden "from" till noden "to" med förvald typ och returnerar den skapade bågen.

      GraphEdge createEdge GraphNode från GraphNode till

distances(från)

- Returnerar ett fält med kortaste väg från den här noden till alla andra noder i grafen.

      Array distances GraphNode från

## Grafnod

En nod är dataelementet i en graf.

### Egenskaper

- width:

  Det här dataelementets storlek.

- x:

  Det här dataelementets X-koordinat.

- y:

  Det här dataelementets Y-koordinat.

- id:

  Det här dataelementets unika identifierare.

- color:

  Det här dataelementets färg angiven som ett hexadecimalt värde.

### Metoder

neighbors()

- Returnera en lista med alla noder anslutna till den här noden. Metoden tar hänsyn till om bågar är riktade.

      array neighbors

edges()

- Returnera en lista med alla bågar (inkommande och utgående) anslutna till den här noden.

      array edges

edges(typ)

- Returnera en lista med alla bågar (inkommande och utgående) anslutna till den här noden av en angiven typ.

      array edges int typ

inEdges()

- Returnera en lista med inkommande bågar anslutna till den här noden.

      array inEdges

inEdges(typ)

- Returnera en lista med inkommande bågar anslutna till den här noden av en angiven typ.

      array inEdges int typ

outEdges()

- Returnera en lista med utgående bågar anslutna till den här noden.

      array outEdges

outEdges(typ)

- Returnera en lista med utgående bågar anslutna till den här noden av en angiven typ.

      array outEdges int typ

edgesTo(mål)

- Returnera en lista med bågar anslutna mellan den här noden och den angivna noden.

      array edgesTo GraphNode mål

## Grafbåge

En båge är anslutningen mellan två grafiska noder. Bågar kan vara riktade eller oriktade, beroende på sin typ.

### Egenskaper

- width:

  Anslutningens bredd.

- directed:

  Om sant, är anslutningen riktat. Annars är anslutningen oriktad.

- from:

  Anslutningens början

- to:

  Anslutningens slut

- color:

  Anslutningstypens identifierare.

### Metoder

remove()

- Ta bort den här anslutningen.

      void remove

add_property(namn, värde)

- Lägg till en ny egenskap i anslutningen.

      void add_property string namn string värde

remove_property(namn)

- Ta bort en befintlig egenskap från anslutningen.

      void remove_property string namn