1. 程式人生 > >從鏈表說起

從鏈表說起

win tool des too 容器 比較 傳統 查找 adding

鏈表可以說在數據結構中擁有很廣泛的應用

它是一個非常好的容器,它和傳統的數組相比較,它具有良好的可變性

鏈表最基礎的功能是增刪改查,關於查找,C#提供了一種屬性 索引函數

然後,它的基本形式如下

首先 ,我們應該用一個節點來存儲信息,我使用泛型的節點

class Node<T>
    {
        public T Data;
        public Node<T> Next;
         public Node()
        {

        }
        public Node(T Data)
        {
            
this.Data = Data; } }

然後便是鏈表

public delegate bool CompareTool<T>(T a, T b);
  public delegate void ShowInfo<T>(T a, T b);
    class LinkList<T>
    {
        protected Node<T> Head;
        protected int _length;
        
        public CompareTool<T> CTool;
        
public delegate void ShowInfo<L>(L a); public ShowInfo<T> SI; public T this[int Index] { get => Find(Index); } public int Length { get => _length; } public LinkList() { Head = new Node<T>(); _length
= -1; } public LinkList(T a) { Head = new Node<T>(); Head.Next=new Node<T>() { Data=a } _length = 0; } public void Enter(T Ves) { Enter(Ves, -2); } public virtual void Enter(T Ves,int pos) { Node<T> a = new Node<T>(Ves); if (pos == -3)//按序插 { } else if (pos == -2)//插頭 { } else if (pos == -1)//插尾 { } else//指定位置 { } } public virtual T Find(int Index) { } public T Out() { return Out(-2); } public virtual T Out(int pos) { Node<T> temp; if (pos == -2)//刪頭 { } else if (pos == -1)//刪尾 { } else//指定位置 { } _length--; return temp.Data; } public void Serialize() { } public void Deserialize() { } public bool CompareTo(T Value) { return CTool(Head.Data,Value); } public void Show() { Node<T> a = Head; while(a!=null) { SI(a.Data); a = a.Next; } } }

從鏈表說起