class Silicium::Graphs::TopologicalSortClass
Attributes
post_order[RW]
Public Class Methods
new(graph)
click to toggle source
# File lib/topological_sort.rb, line 34 def initialize(graph) @post_order = [] @visited = [] graph.nodes.each { |node| dfs(node) unless @visited.include?(node)} end
Private Instance Methods
dfs(node)
click to toggle source
# File lib/topological_sort.rb, line 42 def dfs(node) @visited << node node.adjacents.each { |adj_node| dfs(adj_node) unless @visited.include?(adj_node)} @post_order << node end