博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

图1——数据结构

Posted on 2010-10-17 23:23  猴王无敌  阅读(168)  评论(0)    收藏  举报

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
    }
2.图

    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
    }
3.构造

        #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