public static void Initialize() { //nodes String ph = "#"; dv = new String[5] { ph, ph, ph, ph, ph }; dw = new String[5] { ph, ph, ph, ph, ph }; dx = new String[5] { ph, ph, ph, ph, ph }; dy = new String[5] { ph, ph, ph, ph, ph }; dz = new String[5] { ph, ph, ph, ph, ph }; //edges uv = new bool[6]; ux = new bool[6]; uw = new bool[6]; uy = new bool[6]; zw = new bool[6]; zy = new bool[6]; zv = new bool[6]; zx = new bool[6]; vx = new bool[6]; vy = new bool[6]; vw = new bool[6]; xw = new bool[6]; xy = new bool[6]; yw = new bool[6]; int discovery = 0; //visit very first node (start node) network.VisitNode(network.nodesList.First(), discovery); //until all nodes are visited while (network.unvisitedNodesList.Count != 0) { AssignNewWeightsToNeighbors(network.visitedNodesList.Last()); MakeArraysForTable(network.visitedNodesList.Last(), discovery); DNode nodeToVisitNext = FindUnvisitedNodeWithMinWeight(); discovery++; network.VisitEdge(nodeToVisitNext.GetPreviousNode(), nodeToVisitNext); network.VisitNode(nodeToVisitNext, discovery); MakeArrayForGraph(discovery); } CreateForwardingTable(); }
private static String GetForwarding(DNode endNode, DNode node) { String tracedDvpv = ""; DNode curr = endNode; DNode prev = endNode.GetPreviousNode(); if (node.GetIsStartNode()) { while (prev != node) { curr = prev; prev = curr.GetPreviousNode(); } tracedDvpv = "(" + prev.GetNodeName() + "," + curr.GetNodeName() + ")"; } return(tracedDvpv); }