public SymbolGraph(string stream, char sp) { st = new SequentialSearchST <string, Int32>(); string[] a = stream.Split('\n'); for (int i = 0; i < a.Length; i++) { string[] b = a[i].Split(sp); for (int j = 0; j < b.Length; j++) { if (!st.contains(b[j])) { st.put(b[j], st.size() + 1); // avoid key 0 UnityEngine.Debug.Log($"{st.size()}:{b[j]}"); } } } keys = new string[st.size()]; foreach (string name in st.allkeys()) { keys[st.get(name) - 1] = name; UnityEngine.Debug.Log($"{st.get(name)-1}:{name}"); } G = new Graph(st.size()); for (int i = 0; i < a.Length; i++) { string[] b = a[i].Split(sp); int v = st.get(b[0]) - 1; for (int j = 1; j < b.Length; j++) { G.addEdge(v, st.get(b[j]) - 1); } } }
// todo: read from local file. private Graph initGraph() { var g = new Graph(13); g.addEdge(0, 5); g.addEdge(4, 3); g.addEdge(0, 1); g.addEdge(9, 12); g.addEdge(6, 4); g.addEdge(5, 4); g.addEdge(0, 2); g.addEdge(11, 12); g.addEdge(9, 10); g.addEdge(0, 6); g.addEdge(7, 8); g.addEdge(9, 11); g.addEdge(5, 3); return(g); }