Skip to content

Instantly share code, notes, and snippets.

@senthil1216
Created May 12, 2018 07:07
Show Gist options
  • Save senthil1216/bef545fdf96bace10413ad9c99f6f4b6 to your computer and use it in GitHub Desktop.
Save senthil1216/bef545fdf96bace10413ad9c99f6f4b6 to your computer and use it in GitHub Desktop.
uber-TPS question
import java.util.*;
public class Question {
class Node {
// A unique ID of a node
int id;
// Arbitrary value
String name;
// A list of child node IDs
ArrayList<Integer> references;
// A list of child nodes
ArrayList<Node> children;
public Node(int id, String name, ArrayList<Integer> references) {
this.id = id;
this.name = name;
this.references = references;
this.children = new ArrayList<Node>();
}
}
/**
* Dereferences a node object by adding referenced nodes as children of a
* node.
* @param node a Node object to be dereferenced
* @param nodes a list of all possible children nodes
* @return a dereferenced node
*/
public static Node dereference(Node inputNode, ArrayList<Node> nodes) {
//TODO: type your code here
}
public static void main(String[] args) {
Question q = new Question();
q.test();
}
public void test() {
// node1 = {'id': 1, 'name': 'McDonalds', 'references': [20, 21], 'children': []}
ArrayList<Integer> references1 = new ArrayList<Integer>();
references1.add(20);
references1.add(21);
Node node1 = new Node(1, "McDonalds", references1);
// node2 = {'id': 20, 'name': 'Dinner', 'references': [80], 'children': []}
ArrayList<Integer> references2 = new ArrayList<Integer>();
references2.add(80);
references2.add(1);
Node node2 = new Node(20, "Lunch", references2);
// node3 = {'id': 21, 'name': 'Lunch', 'references': [80], 'children': []}
ArrayList<Integer> references3 = new ArrayList<Integer>();
references3.add(80);
Node node3 = new Node(21, "Dinner", references3);
// node4 = {'id': 80, 'name': 'Hamburger', 'references': [], 'children': []}
ArrayList<Integer> references4 = new ArrayList<Integer>();
Node node4 = new Node(80, "Hamburger", references4);
ArrayList<Node> nodes = new ArrayList<Node>();
nodes.add(node1);
nodes.add(node2);
nodes.add(node3);
nodes.add(node4);
Node answer = dereference(node1, nodes);
System.out.println(answer.references); // [20, 21]
System.out.println(answer.children); // [node2, node3]
System.out.println(answer.children.get(0).id); // 20
System.out.println(answer.children.get(1).id); // 21
System.out.println(answer.children.get(0).references); // [80]
System.out.println(answer.children.get(0).children.get(0).id); // 80
System.out.println(answer.children.get(1).references); // [80]
System.out.println(answer.children.get(1).children.get(0).id); // 80
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment