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, 3129👍, 0💬
Popular Posts:
Can you explain in brief how the ASP.NET authentication process works? ASP.NET does not run by itsel...
Are risk constant through out the project ? * Never say that risk is high through out the project. R...
1. What is normalization. 2. Difference between procedure and functions. 3. Oracle 9i Vs 10g. 4. how...
What is difference between custom JSP tags and JavaBeans? Custom JSP tag is a tag you defined. You d...
Can one execute dynamic SQL from Forms? Yes, use the FORMS_DDL built-in or call the DBMS_SQL databas...