Categories:
.NET (357)
C (330)
C++ (183)
CSS (84)
DBA (2)
General (7)
HTML (4)
Java (574)
JavaScript (106)
JSP (66)
Oracle (114)
Perl (46)
Perl (1)
PHP (1)
PL/SQL (1)
RSS (51)
Software QA (13)
SQL Server (1)
Windows (1)
XHTML (173)
Other Resources:
Calculating Total Weight of Subtree
Subject: Calculating Total Weight of Subtree --- Category: ,1, --- Question
Can you write a computer code for the following problem:
Given a text file with 3 comma-delimited columns of all integers: 'id', 'parent' and 'weight'. Each line represents a node identified by 'id'. 'parent' refers to 'id' of another node. Print out, for each node, the total weight of a subtree below this node.
✍: Guest
Here is the solution in Java:
import java.io.*; import java.util.*; public class PrintWeight { public static void main(String[] a) { Hashtable<String, String> parentMap = new Hashtable<String, String>(); Hashtable<String, Long> weightMap = new Hashtable<String, Long>(); try { BufferedReader input = new BufferedReader(new FileReader(a[0])); String line = null; while ( (line = input.readLine()) != null ) { String[] cols = line.split(","); String id = cols[0].trim(); String parent = cols[1].trim(); long weight = Long.parseLong(cols[2]); Long totalWeight = weightMap.get(id); if (totalWeight==null) { weightMap.put(id, weight); } else { weightMap.put(id, totalWeight.longValue()+weight); } parentMap.put(id, parent); weight = weightMap.get(id).longValue(); while ( parent!=null && parent.length()>0 ) { totalWeight = weightMap.get(parent); if (totalWeight==null) { weightMap.put(parent, weight); } else { weightMap.put(parent, totalWeight.longValue()+weight); } parent = parentMap.get(parent); } } input.close(); } catch (Exception e) { e.printStackTrace(); } Enumeration<String> nodes = weightMap.keys(); while(nodes.hasMoreElements()) { String id = nodes.nextElement(); long weight = weightMap.get(id).longValue(); System.out.println(id+", "+weight); } } }
2014-01-02, 2944👍, 0💬
Popular Posts:
What Happens If One Row Has Missing Columns? - XHTML 1.0 Tutorials - Understanding Tables and Table ...
How can I implement a thread-safe JSP page? You can make your JSPs thread-safe by having them implem...
How to create arrays in JavaScript? We can declare an array like this var scripts = new Array(); We ...
What is the significance of Finalize method in .NET? .NET Garbage collector does almost all clean up...
What is a measure in OLAP ? Measures are the key performance indicator that you want to evaluate. To...