# API de criação de scripts para todas as estruturas de dados

## Objeto abstrato de estrutura de dados

A estrutura de dados abstrata define um conjunto de elementos de dados e ligações possíveis entre eles, isto é, o protótipo para todas as outras estruturas de dados. As estruturas de dados são identificadas pelos seus nomes. Assumindo que você criou uma estrutura de dados com o nome `grafoteste`, então poderá acessar a estrutura de dados simplesmente com este identificador. Por exemplo, para obter uma lista com todos os elementos de dados da estrutura indicada, você pode escrever `grafoteste.list_nodes();` no script.

### Propriedades

- nome :

  O nome único desta estrutura de dados.

## Dados abstratos

Um elemento de dados abstrato é uma unidade de informação que pertence a uma estrutura de dados abstrata e está possivelmente ligada a outros elementos de dados por ponteiros.

### Propriedades

- width :

  O tamanho deste elemento de dados.

- x :

  A coordenada X deste elemento de dados.

- y :

  A coordenada Y deste elemento de dados.

- id :

  O identificador único deste elemento de dados.

- color :

  A cor deste elemento de dados, indicada como um valor hexadecimal.

## Ponteiro abstrato

Uma aresta liga dois elementos de dados e pode ela mesma manter informações sobre as suas propriedades.

### Propriedades

- width :

  Largura da ligação.

- directed :

  Se for verdadeiro, a ligação é direcional. Caso contrário, não é direcional.

- from :

  Início da ligação.

- to :

  Fim da ligação

- color :

  ID do tipo de ligação.

### Métodos

remove()

  Remove esta ligação.

      void remove

add_property(nome, valor)

  Adiciona uma nova propriedade à ligação.

      void add_property string nome string valor

remove_property(nome)

  Remove uma propriedade existente da ligação.

      void remove_property string nome