1. 程式人生 > >圖以及DFS和BFS

圖以及DFS和BFS

struct Edge{ Point start; Point end; }; class graph { private: int edge[1000][1000]; Edge edge_set[1000]; int Pnum = 0; int Enum = 0; Point pset[1000]; public: graph() { memset(edge, 0, sizeof(edge)); } //增加點 void addpoint(Point a); //增加邊 void addedge(int
i, int j,int value); //清空點 void clear_pset(); void clear_edge(); //通過向量叉乘符號來進行定義 ,必須嚴格大於0,在一條線上的也不算left bool toleft(Point a, Point b, Point k); int cross_product(Point a, Point b, Point k); bool in_triangle(Point a, Point b, Point c, Point k); int graham_scan(Point *res); //返回extreme edge的個數
int EE(Point *res); //Jarvis Marching int JM(Point *res); void dijkstra(int start_p,int res[][2]); void floyd(int dist[][1000], int mid[][1000]); void bfs(int start,int *res); void dfs(int start); };