pgm16_10.txt
来自「c#版本 算法大全 几乎所有常见的算法 This file contain」· 文本 代码 · 共 45 行
TXT
45 行
//// This file contains the C# code from Program 16.10 of// "Data Structures and Algorithms// with Object-Oriented Design Patterns in C#"// by Bruno R. Preiss.//// Copyright (c) 2001--2002 by Bruno R. Preiss, P.Eng. All rights reserved.//// http://www.brpreiss.com/books/opus6/programs/pgm16_10.txt//public abstract class AbstractGraph : AbstractContainer, Graph{ protected int numberOfVertices; protected int numberOfEdges; protected Vertex[] vertex; public void TopologicalOrderTraversal(Visitor visitor) { int[] inDegree = new int[numberOfVertices]; for (int v = 0; v < numberOfVertices; ++v) inDegree[v] = 0; foreach (Edge e in Edges) { Vertex to = e.V1; ++inDegree[to.Number]; } Queue queue = new QueueAsLinkedList(); for (int v = 0; v < numberOfVertices; ++v) if (inDegree[v] == 0) queue.Enqueue(vertex[v]); while (!queue.IsEmpty && !visitor.IsDone) { Vertex v = (Vertex)queue.Dequeue(); visitor.Visit(v); foreach (Vertex to in v.Successors) { if (--inDegree[to.Number] == 0) queue.Enqueue(to); } } } // ...}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?