1.节点
public class CVertex { #region Fields private bool m_bIsVisited; public bool IsVisited { get { return m_bIsVisited; } set { m_bIsVisited = value; } } private string m_strName; public string Name { get { return m_strName; } set { m_strName = value; } } #endregion }
public class CGraph { #region Fields private List<CVertex> m_lstVertex = new List<CVertex>(); public List<CVertex> Vertexs { get { return m_lstVertex; } set { m_lstVertex = value; } } private List<List<int>> m_lstMatrix = new List<List<int>>(); public List<List<int>> Matrix { get { return m_lstMatrix; } set { m_lstMatrix = value; } } #endregion }
#region Construction public CGraph(int iVertexCount) { for (var iIndex = 0; iIndex < iVertexCount; iIndex++) { var lstRow = new List<int>(); for (var iRowIndex = 0; iRowIndex < iVertexCount; iRowIndex++) { lstRow.Add(0); } this.m_lstMatrix.Add(lstRow); } } #endregion #region 构造图 public void AddVertex(string strName) { //TODO:判断当前节点是否不符合m_iVertexCount this.m_lstVertex.Add(new CVertex() { Name = strName }); } public void AddEdge(int iStartVertexIndex, int iEndVertexIndex) { //TODO:校验iStartVertexIndex,iEndVertexIndex this.m_lstMatrix[iStartVertexIndex][iEndVertexIndex] = 1; } public void ShowVertex(int iVertexIndex) { //TODO:校验iVertexIndex Console.WriteLine(this.m_lstVertex[iVertexIndex] + " "); } #endregion