您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關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#中構造線性表的類有哪些”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。