forked from G-Urrea/T2-Logaritmos
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgraph.h
26 lines (21 loc) · 1.05 KB
/
graph.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#ifndef GRAPH_DOT_H
#define GRAPH_DOT_H
typedef struct edge
{ //Representa una arista
double w; // peso de la arista
int node; // indice del vecino
} edge;
typedef struct node
{/* Cada nodo contiene un arreglo de aristas representadas por pares que contienen un
puntero a uno de sus vecinos (o su índice dentro del arreglo) y el peso de esa
arista. */
edge* links; // Lista de adyacencia con vertices
int id; // id del nodo, en la lista de nodos sería su indice
int n; // Parámetro extra, para conocer el largo de la lista de adyacencia
} node;
node* createGraph(int n); // Crea un grafo (arreglo de nodos) de tamaño n nodos, requiere liberar memoria.
node* randomGraph(int v, int e); // Crea un grafo de v vértices y e aristas, requiere liberar memoria.
void addEdge(node** graph, int n, int from, int to, double w); // Añade una arista al grafo
void printGraph(node *g, int n); // Imprime los nodos con sus listas de adyacencia
void freeGraph(node** graph, int n); //Libera la memoria pedida por un grafo y sus componentes
#endif