-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgraph.h
82 lines (67 loc) · 1.2 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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#include <stdio.h>
#include <stdlib.h>
#ifndef GRAPH_H
#define GRAPH_H
typedef struct graph_struct graph;
typedef struct vertex_struct vertex;
typedef struct edge_struct edge;
typedef struct neighbour_struct neighbour;
typedef struct node
{
int item;
neighbour *first_neighbour_bc;
struct node *next;
} Node;
typedef struct
{
Node *head;
Node *tail;
int size;
} List;
typedef struct neighbour_struct
{
int id;
int edge_id;
struct neighbour_struct *next;
} neighbour;
typedef struct vertex_struct
{
int id;
int degree;
neighbour *first_neighbour;
int id_tree;
int color;
short k_core;
short queued;
List *bc_ids;
} vertex;
typedef struct edge_struct
{
int coreness;
vertex *a;
vertex *b;
short is_edge;
short is_frond;
int color;
} edge;
typedef struct graph_struct
{
int num_edges;
int num_vertices;
int len_v;
int len_e;
edge *edges;
vertex *vertices;
int progress;
int iterations;
} graph;
void initiate_list(List*);
void initiate_array_list(List**,int);
void add(List*,int);
void free_list(List*);
void print_list(List*);
graph *set_input(char*,int,int);
void free_graph(graph*);
float get_graph_density(graph*);
int *get_degrees(graph*);
#endif