📄 in.h
字号:
/* In.h * l-grafi version 0.1 * File dove memorizzo gli include, le varie variabili da passare al preprocessing * e le varie struct. *///includes#include <unistd.h>#include <time.h>#include <math.h> #include <stdio.h>#include <stdlib.h>//End includes//Preprocessig#define RAND_INT(l,h) (((int)(random_lup() * ((double)(h)-(l)+1))) + (l))#define PERCENT(n,p) ((int)(n/(1/p)))#define TO_MSEC(x) (1000*(x)/CLOCKS_PER_SEC)#define BS_MATRIX 8 #define OK 0 /* nessun errore */#define E_NONE 0 /* nessun errore */#define E_NOMEM (-1) /* non c'<C3><A8> abbastanza memoria */#define E_PARSE (-2) /* errore di parsing */#define E_ILLID (-3) /* identificatore illegale */#define E_CYCLIC (-4) /* grafo non aciclico */#define E_UNKNOWN (-5) /* errore non conosciuto *///End preprocessing/* Strutture di rappresentazione dei grafi : * Matrici di adiacenza * Liste di adiacenza */typedef struct { /* --- MATRICE D'ADIACENZA --- */ int size; /* Grandezza della matrice */ int vtcnt; /* Numero di nodi*/ int edcnt; /* Numero di archi */ int **mat; /* La matrice */} ADJMAT;typedef struct dgraph_edge { /* --- RAPPRESENTAZIONE DI UN NODO NELLA LISTA D'ADIACENZA ---*/ int vertex_no; /* Numero del vertice */ int dist; /* Distanza */ struct dgraph_edge *next; /* Puntatore al prossimo nodo collegato */} dgraph_edge_t;/* Vertex structure type. */typedef struct dgraph_vertex { /* --- RAPPRESENTAZIONE DI UN VERTICE NELLA LISTA D'ADIACENZA ---*/ dgraph_edge_t *first_edge; /* Puntatori ai nodi collegati */ dgraph_edge_t *last_edge;} dgraph_vertex_t;typedef struct dgraph { /*--- LISTA D'ADIACENZA ---*/ int n; //nodi dgraph_vertex_t *vertices; //Puntatore a vertices } dgraph_t;/* Strutture di rappresentazione dei risultati */typedef struct dfs_bfs_result { int n, size; /* Specifica la grandezza dell'array */ int *vertices; /* Il risultato della dfs è rappresentato usando un array. */ int *parents; /* Gli elementi partents[i] rappresentano la visita dei nodi durante depth first search. */ int *visit_nos; /* Specificano i numeri di visita dei vertici.*/} dfs_bfs_result_t;/* Il risultato della ricerca delle C.F.C. è rappresentato usando * degli array. * Il campo sets_n memorizza il numero delle C.f.C. trovate nella ricerca * Il campo size specifica la grandezza dell'array. * * Le C.F.C. sono memorizzate usando tre array : * -sets_s[i] rida la "starting position" nell'array vertices[] della * cfi * -sets_f[i] rida la "finish position" nell'array vertices[] della * cfi * - vertices[] è usato per memorizare il numero dei vertici appartenenti a una cfc. */typedef struct sc_result { int size, n_sets; int *vertices; int *sets_s, *sets_f;} sc_result_t;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -