本文整理汇总了C#中Graph.Clear方法的典型用法代码示例。如果您正苦于以下问题:C# Graph.Clear方法的具体用法?C# Graph.Clear怎么用?C# Graph.Clear使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Graph
的用法示例。
在下文中一共展示了Graph.Clear方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Simple
public void Simple()
{
var graph = new Graph<int>(true);
Assert.IsTrue(graph.IsEmpty);
graph.AddVertex(5);
Assert.IsFalse(graph.IsEmpty);
graph.AddVertex(3);
Assert.IsFalse(graph.IsEmpty);
graph.Clear();
Assert.IsTrue(graph.IsEmpty);
}
示例2: Run
// This would be much more effective as a unit test.
public void Run()
{
int testNum = 1;
Graph<Node, Edge> graph = new Graph<Node, Edge>();
graph.AddNode(new Node(graph.AvailableNodeIndex));
graph.AddNode(new Node(graph.AvailableNodeIndex));
graph.AddNode(new Node(graph.AvailableNodeIndex));
graph.AddNode(new Node(graph.AvailableNodeIndex));
graph.AddEdge(new Edge(0, 1));
graph.AddEdge(new Edge(1, 2));
graph.AddEdge(new Edge(2, 3));
SysDbg.WriteLine("Test " + testNum++ + ":");
outputResults(graph, 0, 3);
graph.Clear();
int numNodes = 7;
for (int i = 0; i < numNodes; i++)
graph.AddNode(new Node(graph.AvailableNodeIndex));
graph.AddEdge(new Edge(0, 1));
graph.AddEdge(new Edge(0, 2));
graph.AddEdge(new Edge(0, 3));
graph.AddEdge(new Edge(1, 4));
graph.AddEdge(new Edge(1, 5));
graph.AddEdge(new Edge(2, 6));
graph.AddEdge(new Edge(3, 5));
SysDbg.WriteLine("Test " + testNum++ + ":");
outputResults(graph, 0, 0);
outputResults(graph, 0, 1);
outputResults(graph, 0, 2);
outputResults(graph, 0, 3);
outputResults(graph, 0, 4);
outputResults(graph, 4, 6);
outputResults(graph, 6, 4);
outputResults(graph, 3, 1);
outputResults(graph, 3, 0);
outputResults(graph, 1, 4);
outputResults(graph, 5, 5);
outputResults(graph, 3, 4);
outputResults(graph, 3, 1);
outputResults(graph, 7, 7);
}
示例3: IsEmptyExample
public void IsEmptyExample()
{
// Initialize a new directed graph instance
var graph = new Graph<int>(true);
// The graph will be empty
Assert.IsTrue(graph.IsEmpty);
// Add a vertex to the graph
graph.AddVertex(3);
// The graph will have one vertex in it (non-empty)
Assert.IsFalse(graph.IsEmpty);
// Clear the graph, thereby making it empty again
graph.Clear();
Assert.IsTrue(graph.IsEmpty);
}
示例4: ClearExample
public void ClearExample()
{
// Initialize a new graph instance
var graph = new Graph<int>(true);
// Add three vertices to the graph
var vertex1 = graph.AddVertex(1);
var vertex2 = graph.AddVertex(2);
var vertex3 = graph.AddVertex(3);
// Add edges between the vertices
graph.AddEdge(vertex1, vertex2);
graph.AddEdge(vertex2, vertex3);
// There will be 2 edges and 3 vertices in the graph
Assert.AreEqual(graph.Edges.Count, 2);
Assert.AreEqual(graph.Vertices.Count, 3);
// Clear the graph - thereby removing all vertices
// and edges in the graph.
graph.Clear();
// The graph will be empty
Assert.AreEqual(graph.Edges.Count, 0);
Assert.AreEqual(graph.Vertices.Count, 0);
}
示例5: Run
//.........这里部分代码省略.........
graph.AddNode(new Node(0));
graph.AddEdge(new Edge(0, 1));
graph.AddEdge(new Edge(2, 0));
graph.AddEdge(new Edge(1, 0));
graph.ChangeEdgeWeight(0, 2, 42.0);
// Should print 0-2, 2-3, 2-0, and 3-2.
SysDbg.WriteLine("Current edges.");
foreach (Edge edge in graph.Edges)
SysDbg.WriteLine("\tEdge " + edge.NodeFrom + " -> " + edge.NodeTo);
// Remove 0-2 and 2-0.
graph.RemoveEdge(2, 0);
// Should print 2-3 and 3-2.
SysDbg.WriteLine("Current edges.");
foreach (Edge edge in graph.Edges)
SysDbg.WriteLine("\tEdge " + edge.NodeFrom + " -> " + edge.NodeTo);
SysDbg.WriteLine("Node 3 exists? " + graph.NodeExists(3));
SysDbg.WriteLine("Node 1 exists? " + graph.NodeExists(1));
SysDbg.WriteLine("Edge 2-3 exists? " + graph.EdgeExists(2, 3));
SysDbg.WriteLine("Edge 3-2 exists? " + graph.EdgeExists(3, 2));
SysDbg.WriteLine("Edge 0-1 exists? " + graph.EdgeExists(0, 1));
SysDbg.WriteLine("Edge 1-0 exists? " + graph.EdgeExists(1, 0));
graph.AddNode(new Node(1));
graph.AddNode(new Node(4));
graph.AddNode(new Node(5));
graph.AddNode(new Node(6));
graph.AddEdge(new Edge(2, 2, 3));
for (int i = 2; i < 20; i++)
graph.AddEdge(new Edge(i, 1, 9.999));
// Should print nodes 0-6.
SysDbg.WriteLine("Nodes");
foreach (Node node in graph.Nodes)
SysDbg.WriteLine("\tNode #" + node.Index);
SysDbg.WriteLine("Current edges.");
foreach (Edge edge in graph.Edges)
SysDbg.WriteLine("\tEdge " + edge.NodeFrom + " -> " + edge.NodeTo);
SysDbg.WriteLine("Current edges from node 1.");
foreach (Edge edge in graph.EdgesFromNode(1))
SysDbg.WriteLine("\tEdge " + edge.NodeFrom + " -> " + edge.NodeTo);
graph.RemoveEdge(0, 5);
graph.RemoveEdge(3, 2);
// These all change the actualWeight.
graph.ChangeEdgeWeight(1, 2, 9001);
graph.GetEdge(6, 1).Weight = 33.2112;
graph.GetEdge(1, 6).Weight = 2112.33;
// Check for curEdge modification by iteration.
foreach (Edge e in graph.Edges)
e.Weight = 1.0;
double weightMod = 10.0;
foreach (Edge e in graph.Edges)
{
e.Weight += weightMod;
weightMod += 10.0;
}
// Revert all weights back to 1.0.
foreach (Edge e in graph.Edges)
e.Weight = 1.0;
// Check for curEdge modification by iteration over a node's edges.
foreach (Edge e in graph.EdgesFromNode(1))
e.Weight = 3.0;
graph.Clear();
int numNodes = 15;
for (int i = 0; i < numNodes; i++)
graph.AddNode(new Node(graph.AvailableNodeIndex));
for (int i = 4; i < 7; i++)
for (int j = 0; j < numNodes; j++)
graph.AddEdge(new Edge(i, j, 2.0));
SysDbg.WriteLine("Current edges.");
{
int curEdgeNum = 0;
foreach (Edge edge in graph.Edges)
SysDbg.WriteLine("\tEdge " + curEdgeNum++ + ": " + edge.NodeFrom + " -> " + edge.NodeTo);
}
graph.RemoveNode(4);
SysDbg.WriteLine("Current edges.");
{
int curEdgeNum = 0;
foreach (Edge edge in graph.Edges)
SysDbg.WriteLine("\tEdge " + curEdgeNum++ + ": " + edge.NodeFrom + " -> " + edge.NodeTo);
}
}