示例#1
0
 public void SetNode(int index, MatrixNode <T> item)
 {
     if (index < 0 || index > GetNodeNum() - 1)
     {
         throw new Exception("Error");
     }
     _Nodes[index] = item;
 }
示例#2
0
 public int GetIndex(MatrixNode <T> item)
 {
     for (int i = 0; i < GetNodeNum(); i++)
     {
         if (item.Equals(GetNode(i)))
         {
             return(i);
         }
     }
     return(-1);
 }
示例#3
0
        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]);
        }
示例#4
0
        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;
        }
示例#5
0
        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;
        }