distributed computing - Cidon Depth first search algorithm implementation in c# -


i have planned build c# code set of inputs classical dfs, awerbuch dfs , cidon dfs work. successful in first 2 last 1 seems tricky. not able figure out logic on how it. guys give me heads on it? explain how logic shld work cidon?

public class nodes { public bool isvisited; public string parent; public string[] neighbour; public int nodevalue;  public nodes(string[] arr, int nodevalue) {     this.neighbour = new string[arr.length];     (int x = 0; x < arr.length; x++)         this.neighbour[x] = arr[x];//hi...works??     this.isvisited = false;     this.nodevalue = nodevalue; }   }  public class dfs { static list<string> traversedlist = new list<string>();  static list<string> parentlist = new list<string>(); static bufferblock<object> buffer = new bufferblock<object>(); static bufferblock<object> buffer1 = new bufferblock<object>(); static bufferblock<object> buffer3 = new bufferblock<object>(); static bufferblock<object> buffer2 = new bufferblock<object>();  public static void main(string[] args) {      int n = 100;     int m = n * 4;     int p = n * 16;      stopwatch stopwatch = new stopwatch();     stopwatch.start();      list<string> global_list = new list<string>();       streamreader file = new streamreader(args[2]);      string text = file.readtoend();      string[] lines = text.split('\n');       string[][] array1 = new string[lines.length][];     nodes[] dfsnodes = new nodes[lines.length];      (int = 0; < lines.length; i++)     {         lines[i] = lines[i].trim();         string[] words = lines[i].split(' ');          array1[i] = new string[words.length];         dfsnodes[i] = new nodes(words, i);         (int j = 0; j < words.length; j++)         {             array1[i][j] = words[j];         }     }     streamwriter sr = new streamwriter(args[4]);      int startnode = int.parse(args[3]);      if (args[1].equals("a1"))     {         console.writeline("algo 0");         buffer.post(1);         dfs(dfsnodes, startnode, "root");     }     else if (args[1].equals("a2"))     {         console.writeline("algo 1");         buffer1.post(1);         dfs1(dfsnodes, startnode, "root",sr);     }     else if (args[1].equals("a3"))     {         buffer3.post(1);         list<string> visitedtlist = new list<string>();         console.writeline("algo 2");         dfs2(dfsnodes, startnode, "root", visitedtlist,sr);     }      stopwatch.stop();      console.writeline(stopwatch.elapsed);     console.readline(); }  public static void dfs(nodes[] node, int value, string parent,streamwriter sr1) {     int id = (int)buffer.receive();     sr1=new streamwriter(arg     console.writeline("node:" + value + " parent:" + parent + " id:" + id);     sr1.write("node:" + value + " parent:" + parent + " id:" + id);     id++;     traversedlist.add(value.tostring());     buffer.post(id);     (int z = 1; z < node[value].neighbour.length; z++)     {         if (!traversedlist.contains(node[value].neighbour[z]))         {             dfs(node, int.parse(node[value].neighbour[z]), value.tostring(),sr1);         }      }     return;    }  public static void dfs1(nodes[] node, int value, string parent, streamwriter sr) {     int id = (int)buffer1.receive();     sr.write("node:" + value + " parent:" + parent + " id:" + id);     node[value].isvisited = true;     node[value].parent = parent;     id++;     buffer1.post(id);     (int z = 1; z < node[value].neighbour.length; z++)     {         buffer2.post(node[int.parse(node[value].neighbour[z])]);         if (!isvisited())         {             dfs1(node, int.parse(node[value].neighbour[z]), value.tostring(),sr);         }      }     return;    }  public static void dfs2(nodes[] node, int value, string parent, list<string> visitedtlist, streamwriter sr) {     int id = (int)buffer3.receive();     sr.write("node:" + value + " parent:" + parent + " id:" + id);     id++;     visitedtlist.add(value.tostring());     buffer3.post(id);     (int z = 1; z < node[value].neighbour.length; z++)     {         buffer2.post(node[int.parse(node[value].neighbour[z])]);         if (!visitedtlist.contains(node[value].neighbour[z]))             dfs2(node, int.parse(node[value].neighbour[z]), value.tostring(), visitedtlist,sr);      }     return;    }  public static bool isvisited() {     nodes node = (nodes)buffer2.receive();     return node.isvisited; }  } 


Comments

Popular posts from this blog

java - Play! framework 2.0: How to display multiple image? -

gmail - Is there any documentation for read-only access to the Google Contacts API? -

php - Controller/JToolBar not working in Joomla 2.5 -