示例#1
0
文件: graph.c 项目: fangwen/datas
int main()
{
	FILE *fp = fopen("hw12p.txt", "r");
	Point *point = (Point *) malloc(MAX_POINT * sizeof(Point));
	int junk;
	double x, y;
	int i;
	for (i = 1; i < MAX_POINT; i++) {
		fscanf(fp, "%d%lf%lf", &junk, &x, &y);
		point[i].x = x;
		point[i].y = y;
	}
	fclose(fp);

	double road[MAX_POINT][MAX_POINT];
	FILE *fr = fopen("hw12r.txt", "r");
	int p1, p2;
	for (i = 0; i < 928; i++) {
		fscanf(fr, "%d %d", &p1, &p2);
		road[p1][p2] = sqrt((point[p1].x - point[p2].x) * (point[p1].x - point[p2].x)
							+ (point[p1].y - point[p2].y) * (point[p1].y - point[p2].y));
		road[p2][p1] = road[p1][p2];
	}
	dfs_traverse(road);
	//bfs_traverse(road);
	fclose(fr);
	free(point);
	return 0;
}
示例#2
0
void dfs_traverse(node::Node* node, UnaryOperation unary_op) {
  unary_op(node);
  for (auto & c : node->get_children()) {
    dfs_traverse(c.get(), unary_op);
  }
}