public void SetNode(int index, MatrixNode <T> item) { if (index < 0 || index > GetNodeNum() - 1) { throw new Exception("Error"); } _Nodes[index] = item; }
public int GetIndex(MatrixNode <T> item) { for (int i = 0; i < GetNodeNum(); i++) { if (item.Equals(GetNode(i))) { return(i); } } return(-1); }
public int GetEdge(MatrixNode <T> item, MatrixNode <T> item2) { var index = GetIndex(item); var index2 = GetIndex(item2); if (index == -1 || index2 == -1) { throw new Exception("Error"); } return(_Relations[index, index2]); }
public void DeleteEdge(MatrixNode <T> item, MatrixNode <T> item2) { var index = GetIndex(item); var index2 = GetIndex(item2); if (index == -1 || index2 == -1) { throw new Exception("Error"); } if (_Relations[index, index2] != _Max) { _EdgeNum--; } _Relations[index, index2] = _Max; }
public void SetEdge(MatrixNode <T> item, MatrixNode <T> item2, int v) { var index = GetIndex(item); var index2 = GetIndex(item2); if (index == -1 || index2 == -1) { throw new Exception("Error"); } if (_Relations[index, index2] == _Max) { _EdgeNum++; } _Relations[index, index2] = v; }