Advertisement
Guest User

Untitled

a guest
Jul 21st, 2017
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 0.88 KB | None | 0 0
  1. adj_vertex_t *tour( adj_vertex_t *E, adj_vertex_t *P){
  2.     if (count_vertices(P) == graphSize){
  3.         return (P);
  4.     }
  5.     adj_vertex_t *inter = setIntersection(E, P);
  6.     if (inter == NULL){
  7.         return NULL;
  8.     }
  9.     adj_vertex_t *v;
  10.     adj_vertex_t *result;
  11.     for(v=inter; v != NULL; v = v->next) {
  12.         result = tour(v->vertex->adj_list, setUnion(P, v));
  13.     if(result) {
  14.         free_adj_list(result);
  15.         return result;
  16.     }
  17. }
  18.  
  19. adj_vertex_t *setUnion(adj_vertex_t *A, adj_vertex_t *B){
  20.     adj_vertex_t *result = malloc(sizeof(adj_vertex_t));
  21.     adj_vertex_t *res_current = result;
  22.     adj_vertex_t *adj_v;
  23.     for (adj_v = A; adj_v != NULL; adj_v = adj_v->next, res_current = res_current->next) {
  24.         res_current->vertex = adj_v->vertex;
  25.         res_current->weight = adj_v->weight;
  26.         res_current->next = malloc(sizeof(adj_vertex_t));
  27.     }
  28. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement