public Iterator(ListBasedGraphSE <VertexType, EdgeType> g, int bx) { _inner = g; basevertex = bx; it = g.data[bx].list.GetEnumerator(); Reset(); }
//------converters public void Convert2anothertype() { GraphBase <VertexType, EdgeType> ng;// will conatain new graph referance; if (g is MatrixBasedGraph <VertexType, EdgeType> ) { ng = new ListBasedGraphSE <VertexType, EdgeType>(VertexCount, g.IsDirected); } else { ng = new MatrixBasedGraph <VertexType, EdgeType>(VertexCount, g.IsDirected); } //objectless functional calls are routed to g object for (int i = 0; i < VertexCount; i++) { for (int j = 0; j < VertexCount; j++) { if (EdgeExists(i, j)) { ng.AddEdge(i, j, GetEdgeWeight(i, j)); } } } g = ng; PrepareIterator(0); }