public UEdge NextUEdge1() { UEdge ret = new UEdge(); ret.from = NextInt() - 1; ret.to = NextInt() - 1; return(ret); }
public UEdge[] NextUEdge1(int n) { UEdge[] ret = new UEdge[n]; for (int i = 0; i < n; ++i) { ret[i] = NextUEdge1(); } return(ret); }
public void SplitActiveEdge(byte[] store, UNode uNodeToAdd, int index, byte symbol) { UEdge activeEdge = ActiveEdge; UEdge splitEdge = new UEdge(activeEdge.From, activeEdge.From + _activeLength, uNodeToAdd); uNodeToAdd.Edges[store[activeEdge.From + _activeLength]] = new UEdge(activeEdge.From + _activeLength, activeEdge.To, activeEdge.Next); uNodeToAdd.Edges[symbol] = new UEdge(index, store.Length, null); _activeUNode.Edges[_activeEdgeSymbol] = splitEdge; }
public void AddEdgeToActiveNode(byte symbol, UEdge edge) { _activeUNode.Edges[symbol] = edge; }