Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int main() {
- string buf;
- // get function
- string func = to!string(stdin.readln());
- // get range of nodes
- int node_count = to!int(strip(stdin.readln()));
- Node[] nodes;
- // create node objects for all nodes
- for (int i = 0; i < node_count; i++) {
- nodes ~= new Node();
- }
- // get start node
- Node start_node = nodes[to!int(strip(stdin.readln()))];
- // get goal node
- nodes[to!int(strip(stdin.readln()))].ratatosk = true;
- string[] numbers;
- Node temp_node;
- // add information to node objects
- while(stdin.readln(buf)) {
- numbers = split(buf);
- temp_node = nodes[to!int(numbers[0])];
- numbers = numbers[1..$];
- for (int i = 0; i < numbers.length; i++) {
- temp_node.child ~= nodes[to!int(i)];
- }
- }
- // use switch instead of if-else for better translation, default to dfs
- switch(func) {
- case "dfs":
- writeln(dfs(start_node));
- break;
- case "bfs":
- writeln(bfs(start_node));
- break;
- default:
- writeln(dfs(start_node));
- break;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement