当前位置:编程学习 > C#/ASP.NET >>

C#的顺序表

小弟在用C#做顺序表是有点问题请高手指教,代码如下:
 class Sqlist<T>
    {
       T[] data;
       int maxsize;
       int last;

       public T this[int index]
       {
           get {return data [index ];}
           set {data [index ]=value ;}
       }
       public int Last
       {
          get {return last ;}
       }
       public int MaxSize
       {
           get {return maxsize ;}
           set {maxsize =value ;}
       }
       public Sqlist (int size)
       {
           data =new T[size];
           maxsize =size ;
           last =-1;
       }
       public int GetLength
       {get {return last +1;}}

       public void ClearList()
       {
           last =-1;
       }
       public bool IsEmpty()
       {
           return (last ==-1)?true :false ;
       }
       public bool IsFull()
       {
           return (maxsize ==last +1)?true :false ;
       }
       public void Append(T item)
       {
            if (IsFull ())
            return ;
            data [++last]=item ;
       }
       public void Insert(T item, int i)
       {
           for (int j=last+1; j>=i-1 ; j--)
           data [j]=data [j-1];
           data [i-1]=item ;     
           ++last ;     
       }
       public T Delect(int i)
       {
          T D=default (T);
          if (IsEmpty ())
           return D;

          if (i==last +1)
          D =data[last--];
          else 
          {
              D =data [i-1];
              for (int j=i ;j <=last ;j++)
             {
                  data [j]=data [j+1];
             }
          }
          last --;
          return D ;
       }
       public T GetElem(int i)
       {
           return data [i];
       }
     /* public int Locate(T item)
       {
           int i;
           for (i=0; i<=last ;++i)
           {
               if (ValueType.ReferenceEquals  ==data [i])
               break ;
           }
           return i; 
           if (i>last )
           return -1;     
       }*/
    }
/*……*/之间的有错误!请不吝赐教!感激不尽! --------------------编程问答-------------------- 注释掉的代码改成这样试试。

public int Locate(T item)
{
    int i;
    for (i = 0; i <= last; ++i)
    {
        if (ValueType.ReferenceEquals(item, data[i])) return i;
    }
    return -1;
}
--------------------编程问答-------------------- 呵呵……谢谢您!能解释下这是个什么意思吗?我是边学C#边学数据结构!很难熬!请您赐教! --------------------编程问答--------------------  if (i>last )
  return -1;   
没什么就是你这个位置判断不合适
说白了就是逻辑没理清楚
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,