Advertisement
Guest User

Untitled

a guest
Jun 16th, 2019
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.89 KB | None | 0 0
  1. void GraphPreOrderMapRic(vertici* Arr_Vertex,MapFun mapper){
  2.     uint i;
  3.     if(Arr_Vertex->adj[0]!=NULL) {
  4.         for (i = 0; i < Arr_Vertex->num_vertici; i++) {
  5.             if (Arr_Vertex->vertice[i]->colore == 1) {
  6.                 DFS_VISIT_PREORDER(Arr_Vertex, Arr_Vertex->vertice[i], Arr_Vertex->adj[i],mapper);
  7.             }
  8.         }
  9.     }
  10. }
  11.  
  12. void GraphPreOrderFoldRic(vertici* Arr_Vertex,FoldFun folder,void* elem){
  13.     uint i;
  14.     if(Arr_Vertex->adj[0]!=NULL) {
  15.         for (i = 0; i < Arr_Vertex->num_vertici; i++) {
  16.             if (Arr_Vertex->vertice[i]->colore == 1) {
  17.                 DFS_VISIT_PREORDER2(Arr_Vertex, Arr_Vertex->vertice[i], Arr_Vertex->adj[i],folder,elem);
  18.             }
  19.         }
  20.     }
  21. }
  22.  
  23. void GraphPostOrderMapRic(vertici* Arr_Vertex,MapFun mapper){
  24.     uint i;
  25.     if(Arr_Vertex->adj[0]!=NULL) {
  26.         for (i = 0; i < Arr_Vertex->num_vertici; i++) {
  27.             if (Arr_Vertex->vertice[i]->colore == 1) {
  28.                 DFS_VISIT_POSTORDER(Arr_Vertex, Arr_Vertex->vertice[i], Arr_Vertex->adj[i],mapper);
  29.             }
  30.         }
  31.     }
  32. }
  33.  
  34. void GraphPostOrderFoldRic(vertici* Arr_Vertex,FoldFun folder,void* elem){
  35.     uint i;
  36.     if(Arr_Vertex->adj[0]!=NULL) {
  37.         for (i = 0; i < Arr_Vertex->num_vertici; i++) {
  38.             if (Arr_Vertex->vertice[i]->colore == 1) {
  39.                 DFS_VISIT_POSTORDER2(Arr_Vertex, Arr_Vertex->vertice[i], Arr_Vertex->adj[i],folder,elem);
  40.             }
  41.         }
  42.     }
  43. }
  44.  
  45. void GraphBreadthOrderMapRic(vertici* Arr_Vertex,MapFun mapper){
  46.     uint i;
  47.     long long int temp;
  48.     int ris=0;
  49.     DataType* type=ConstructIntDataType();
  50.     DataObject* oggetto=adtConstruct(type);
  51.     QueueType* type_queue=ConstructQueueVecType();
  52.     QueueObject* queue=queConstruct(type_queue);
  53.     for(i=0;i<Arr_Vertex->num_vertici;i++) {
  54.         if(Arr_Vertex->vertice[i]->colore==1)
  55.         {
  56.             Arr_Vertex->vertice[i]->colore = 3;
  57.             mapper(Arr_Vertex->vertice[i]->elem,NULL);
  58.             temp = Arr_Vertex->vertice[i]->nome;
  59.             adtSetValue(oggetto, &temp);
  60.             queEnqueue(queue, oggetto);
  61.             BFS_VISIT(Arr_Vertex,queue,mapper);
  62.         }
  63.     }
  64. }
  65.  
  66. void GraphBreadthOrderFoldRic(vertici* Arr_Vertex,FoldFun folder,void* elem){
  67.     uint i;
  68.     long long int temp;
  69.     int ris=0;
  70.     DataType* type=ConstructIntDataType();
  71.     DataObject* oggetto=adtConstruct(type);
  72.     QueueType* type_queue=ConstructQueueVecType();
  73.     QueueObject* queue=queConstruct(type_queue);
  74.     for(i=0;i<Arr_Vertex->num_vertici;i++) {
  75.         if(Arr_Vertex->vertice[i]->colore==1)
  76.         {
  77.             Arr_Vertex->vertice[i]->colore = 3;
  78.             folder(Arr_Vertex->vertice[i]->elem,elem,NULL);
  79.             temp = Arr_Vertex->vertice[i]->nome;
  80.             adtSetValue(oggetto, &temp);
  81.             queEnqueue(queue, oggetto);
  82.             BFS_VISIT2(Arr_Vertex,queue,folder,elem);
  83.         }
  84.     }
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement