Skip to content

Arquivo header em C que utiliza da implementação de listas encadeadas (de forma adaptada) para a criação de grafos.

Notifications You must be signed in to change notification settings

guirque/Grafo-Em-C

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Grafo Em C

Uma implementação de grafo na linguagem C.
Utiliza um arquivo header adaptado da implementação de listas encadeadas.

Structs

  • llist** graph
  • Referida, por meio de typedef, como graph, armazena a estrutura básica de um grafo, isto é, um vetor de listas encadeadas, cujos elementos representam as arestas.
  • struct degree
  • Referida, por meio de typedef, como degree, armazena a estrutura de três valores inteiros: indegree (grau de entrada), outdegree (grau de saída), e total (a soma do grau de entrada com o de saída). É relacionado a um vértice, por meio da função vertexDegree.

Funções

  • createGraph (int size)
  • Retorna um novo grafo de tamanho size. Um grafo pode ser criado com graph nome = createGraph(tamanho);
  • insertEdge (graph aGraph, int origin, int destination, int weight)
  • Cria uma aresta partindo de um vértice de origem em direção a um outro, de origem, com um custo (peso) atribuído.
  • removeEdge (graph aGraph, int origin, int destination, int weight)
  • Remove uma aresta, dadas as informações sobre o vértice de origem, o de destino e o custo (peso) relacionado a essa aresta.
  • printGraph (graph aGraph)
  • Imprime um grafo.
  • isCompleteGraph (graph aGraph)
  • Retorna 0, caso o grafo não seja completo, e 1, caso contrário. É importante destacar que a definição de completo se aplica a grafos simples (sem laços (self-loops) e duplas direções (mais uma aresta ligando dois vértices)) e não direcionados. Como a implementação do grafo, para este repositório, supõe direções, um grafo não direcionado é considerado aquele cujas arestas são direcionadas bilateralmente, isto é, há ida e volta entre dois vértices, para quaisquer vértices que possuam alguma conexão.
  • vertexDegree (graph aGraph, int vertex)
  • Retorna uma struct degree contendo informações sobre o grau de um vértice de um grafo. Ela inclui o grau de entrada (indegree), o de saída (outdegree), e o grau do vértice em si (total).
  • printAllPaths (graph aGraph, int origin, int destination)
  • Imprime todos os caminhos entre dois vértices. Retorna um inteiro 0 ou 1, representando a existência ou não de caminhos entre os vértices especificados.
  • printLowestWeightPath (graph aGraph, int origin, int destination)
  • Imprime o caminho de menor peso (custo) total entre dois vértices. Também imprime o valor total do custo desse caminho. Retorna um inteiro 0 ou 1, representando a existência ou não de caminhos entre os vértices especificados.
  • printShortestPath (graph aGraph, int origin, int destination)
  • Imprime o caminho mais curto entre dois vértices. Também imprime o número total de vértices contidos nesse caminho. Retorna um inteiro 0 ou 1, representando a existência ou não de caminhos entre os vértices especificados.

About

Arquivo header em C que utiliza da implementação de listas encadeadas (de forma adaptada) para a criação de grafos.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages