# Programmeringsgränssnitt för alla datastrukturer

## Abstrakt datastrukturobjekt

Den abstrakta datastrukturen definierar en uppsättning dataelement och möjliga anslutningar mellan dem. Den är prototyp för alla andra datastrukturer. Datastrukturer identifieras med sina namn. Låt oss anta att du skapade en datastruktur vid namn `testgraf`. Då kan du komma åt datastrukturen genom att helt enkelt skriva identifieraren. För att exempelvis hämta ett fält med alla dataelement i den angivna datastrukturen, kan du skriva `testgraf.list_nodes();` i skriptet.

### Egenskaper

- name:

  Den här datastrukturens unika namn.

## Abstrakt data

Ett abstrakt dataelement är en enhet information som hör till en abstrakt datastruktur och möjligtvis är anslutet till andra dataelement med pilar.

### 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.

## Abstrakt pil

En pil ansluter två dataelement och kan själv innehålla information i sina egenskaper.

### 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