Unity版本: 5.3.4
使用語言: C#
First
模塊化編程是大多數初學者必經之路,然后可能你走向了結構化編程,鏈表是一種典型結構模式,它的出現克服了數組必須預先知道大小的缺陷,聽不懂?你只需要記住,鏈表結構非常牛叉就可以了,學習這種結構對我們的邏輯思維有很大提升。
WHAT
什么是鏈表結構呢?
鏈表是一種物理存儲單元上非連續、非順序的存儲結構。比如A->B->C,這種結構,我們可以理解為A連接著B,B連接C,像這種結構我們就叫做鏈表結構。對了,火車的車廂,其實就是鏈表的結構的最好說明。
WHY
為什么要有鏈表結構呢?
學過計算機的都知道數組(Array),數組常用切好用,但也存在問題。首先,數組必須需要知道空間大?。╥nt[] age = new int[100], 必須聲明長度),其次,對于元素之間插入、刪除操作效率很低(如何在數組中間插入一個元素?)。
鏈表的出現,完美的解決了這些問題。
HOW
如何在計算機中使用鏈表結構?
首先我們需要聲明一種結構
//鏈表結構: 構造節點 - 連接節點
//Template
class Node
{
public int num;
//指向下一個元素
public Node next;
}
我們可以把上面的這種結構看做是一個禮品盒,可以存放整形數值。
然后我們創建一個MyList先生,這位先生就使用Node去存放整形物品,而且使用了鏈表結構哦!
class MyList
{
public Node currentNode;
public Node point;
public MyList()
{
currentNode = new Node();
}
//存放物品
public void Add(int value)
{
//第一次
if(point == null)
{
currentNode.num = value;
point = currentNode;
}
else //2 3 4..... 次
{
Node temp = new Node();
temp.num = value;
point.next = temp;
//更新指針
point = temp;
}
}
}
然后,我們可以在客戶端測試一下:
public static void Main (string[] args)
{
MyList<int> mList = new MyList<int>();
//添加元素
mList.Add(1);
mList.Add(11);
mList.Add(111);
mList.Add(1111);
while(mList.currentNode != null)
{
Console.WriteLine (mList.currentNode.num);
mList.currentNode = mList.currentNode.next;
}
}
我們自己定義的一個整形集合就這樣??了。它有兩個優點:可以存放任意多個元素!方便元素的插入和刪除。
WHERE
應用場景:集合(動態數組)、貪吃蛇、地圖的循環生成、老虎機效果等等,鏈表可以幫助我們完成很多事情。
Last
#成功的道路沒有捷徑,代碼這條路更是如此,唯有敲才是王道。