線性表 C#實現

來源:互聯網
上載者:User

概念

  主要參考C#資料結構一書

  線性表和順序表

代碼

線性表介面

using System;using System.Collections.Generic;using System.Text;namespace CSharpDemo{    public interface ILinearList<T>    {        int GetLength();        void Clear();        bool IsEmpty();        void Append(T item);        void Insert(T item, int i);        void Delete(int i);        T GetElement(int i);        int Locate(T item);    }}

 順序表

using System;using System.Collections.Generic;using System.Text;namespace CSharpDemo{    /// <summary>    /// 順序表實現    /// </summary>    /// <typeparam name="T"></typeparam>    public class SequenceList<T>:ILinearList<T>    {        #region Field and Property                private int maxsize;        private T[] data;        private int last;        public int MaxSize        {            get            {                return this.maxsize;            }            set            {                this.maxsize = value;            }        }        public int Last        {            get            {                return this.last;            }        }        #endregion        public T this[int i]        {            get            {                return data[i];            }            set            {                data[i] = value;            }        }        public SequenceList(int size)        {            this.MaxSize = size;            data = new T[size];            last = -1;        }        #region ILinearList<T> Member        public int GetLength()        {            return last + 1;        }        public void Clear()        {            last = -1;        }        public bool IsEmpty()        {            return last == -1 ? true : false;        }        public void Append(T item)        {            data[++last] = item;        }        public void Insert(T item, int index)        {            for (int i = last; i >= index; i--)            {                data[i + 1] = data[i];            }            data[index] = item;            ++last;        }        public void Delete(int index)        {            for (int i = index; i <= last; i++)            {                data[i] = data[i + 1];            }            --last;        }        public T GetElement(int index)        {            if (IsEmpty())            {                return default(T);            }            return data[index];        }        public int Locate(T item)        {            int flag = -1;            for (int i = 0; i <= last; i++)            {                if (item.Equals(data[i]))                {                    flag = i;                    break;                }            }            return flag;        }        #endregion        public override string ToString()        {            string dataString = string.Empty;            for (int i = 0; i <= last; i++)            {                dataString += data[i] + " ";            }            return dataString;        }    }}

 

 

 

  

  

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.