Advertisement
Pweebs

Untitled

Nov 23rd, 2019
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.34 KB | None | 0 0
  1. // Jevin Olano
  2. // jolano
  3. // CSE 101
  4. // November 22, 2019
  5. // Graph.h - header file for Graph
  6.  
  7. #ifndef _GRAPH_H_INCLUDE_
  8. #define _GRAPH_H_INCLUDE_
  9.  
  10. #define INF -1;
  11. #define NIL 0;
  12. #include "List.h"
  13.  
  14. // Constructors & Destructors ---------------------------
  15.  
  16. // GraphObj
  17. typedef struct GraphObj {
  18. List* adjacency;
  19. int* color;
  20. int* parent;
  21. int* distance;
  22. int order;
  23. int size;
  24. int source;
  25. } GraphObj;
  26.  
  27. typedef struct GraphObj* Graph;
  28.  
  29. // newGraph()
  30. // Creates and returns a new empty Graph
  31. Graph newGraph(int n);
  32.  
  33. // freeGraph()
  34. // Frees all heap memory associated with *pG, and sets *pG to null
  35. void freeGraph(Graph* pG);
  36.  
  37. // Access Functions -------------------------------------
  38.  
  39. // getOrder()
  40. int getOrder(Graph G);
  41.  
  42. // getSize()
  43. int getSize(Graph G);
  44.  
  45. // getSource()
  46. int getSource(Graph G);
  47.  
  48. // getParent()
  49. int getParent(Graph G, int u);
  50.  
  51. // getDist()
  52. int getDist(Graph G, int u);
  53.  
  54. // getPath()
  55. void getPath(List L, Graph G, int u);
  56.  
  57. // Manipulation Procedures ------------------------------
  58.  
  59. // makeNull()
  60. void makeNull(Graph G);
  61.  
  62. // addEdge()
  63. void addEdge(Graph G, int u, int v);
  64.  
  65. // addArc()
  66. void addArc(Graph G, int u, int v);
  67.  
  68. // BFS()
  69. void BFS(Graph G, int s);
  70.  
  71. // Other Operations -------------------------------------
  72.  
  73. // printGraph()
  74. void printGraph(FILE* out, Graph G);
  75.  
  76. #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement