C#中构造线性表的类有哪些

这篇文章将为大家详细讲解有关C#中构造线性表的类有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

让我们来看看C#数据结构与算法之构造线性表的类的代码使用:

public interface IListDS﹤T﹥   {      int GetLength();      void Clear();      bool IsEmpty();      bool IsFull();      void Append(T item);      void Insert(T item, int i);      T Delete(int i);      T GetElem(int i);      string Locate(T value);   }   public class TList﹤T﹥ : IListDS﹤T﹥  {      private T[] _list;      private int _len;      private int _lastOne;       public T this[int length]      {          get { return _list[length]; }          set { _list[length] = value; }      }       public int List      {          get { return _lastOne; }      }       public int Maxsize      {          get { return _len; }          set { _len = value; }      }       public TList(int size)      {          _list = new T[size];          _len = size;          _lastOne = -1;      }       public int GetLength()      {          return _lastOne + 1;      }       public bool IsEmpty()      {          if (_lastOne == -1)          { return true; }          else         { return false; }      }       public void Clear()      {          _lastOne = -1;      }       public bool IsFull()      {          if (_lastOne == _len - 1)          { return true; }          else         { return false; }      }       public void Append(T item)      {          if (IsFull())          {               throw new ArgumentOutOfRangeException("The list is full!");           }          _list[++_lastOne] = item;              }       public void Insert(T item, int i)      {          if (IsFull())          {              throw new ArgumentOutOfRangeException("The list is full!");          }          if (i ﹤ 0 || i ﹥ _len)          {              throw new ArgumentOutOfRangeException("Position Error!");          }           if (i == _lastOne)          {              _list[++_lastOne] = item;          }          else         {              for (int j = i; j ﹤ _len - 1; j++)              {                  _list[j + 1] = _list[j];              }              _list[i] = item;          }          ++_lastOne;      }       public T Delete(int i)       {          T t = default(T);          if (IsEmpty())          {              throw new ArgumentNullException("T", "List is empty!");          }          if (i ﹤ 0 || i ﹥ _lastOne)          {              throw new ArgumentOutOfRangeException("T", "Position is Error!");          }          if (i == _lastOne)          {              t = _list[_lastOne - 1];          }          else         {              t = _list[_lastOne];              for (int j = i; j ﹤ _lastOne; j++)              {                  _list[j] = _list[j + 1];              }          }          --_lastOne;          return t;      }       public T GetElem(int i)      {          if (IsEmpty())          {              throw new ArgumentNullException("T", "List is empty!");          }          if (i ﹤ 0 || i ﹥ _len)          {              throw new ArgumentOutOfRangeException("Position is Error!");          }           return _list[i];      }       public string Locate(T value)      {          if (IsEmpty())          {              throw new ArgumentNullException("T", "List is empty!");          }          int i = 0;          for (i = 0; i ﹤ _len; i++)          {              if (value.Equals(_list[i]))              {                   break;              }          }          if (i ﹥= _len)          {              return "-1";          }          return i.ToString();      }  }

C#数据结构与算法中构造线性表的类之调用线性表的操作:

TList﹤string﹥ TL = new TList﹤string﹥(5) { };   TL.Append("A");   TL.Append("B");

关于“C#中构造线性表的类有哪些”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

原创文章,作者:3628473679,如若转载,请注明出处:https://blog.ytso.com/230832.html

(0)
上一篇 2022年1月15日
下一篇 2022年1月15日

相关推荐

发表回复

登录后才能评论