Topological sort: Difference between revisions

Updated D entry
(Added Bracmat)
(Updated D entry)
Line 573:
string[][] topoSort(TDependencies d) {
foreach (k, v; d)
d[k] = array(filter!((string s){ return=> s != k; })(uniq(v.sort())));
(uniq(v.sort())));
 
foreach (s; uniq(sort(join(d.values))))
if (s !in d)
Line 595 ⟶ 593:
foreach (item, dep; d)
if (!canFind(ordered, item))
dd[item] = array(filter!(s => !canFind(ordered, s))
(dep));
(string s) { return !canFind(ordered, s); }
)(dep));
d = dd;
}
Line 610 ⟶ 606:
 
void main() {
autoimmutable data =
"des_system_lib std synopsys std_cell_lib des_system_lib dw02 dw01 ramlib ieee
dw01 ieee dw01 dware gtech
Line 639 ⟶ 635:
writeln(subOrder);
}</lang>
{{out}}
Output:
<pre>#1 : [ieee, std, synopsys]
#2 : [dware, gtech, ramlib, std_cell_lib]
Anonymous user