Created
May 12, 2018 07:07
-
-
Save senthil1216/bef545fdf96bace10413ad9c99f6f4b6 to your computer and use it in GitHub Desktop.
uber-TPS question
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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