C#實現
首先,構造一個單鏈表的節點類:
class Link<T>
{
public T Data;
public Link<T> Next;
/// <summary>
/// 構造函數
/// </summary>
/// <param name="data"></param>
/// <param name="next"></param>
public Link(T data, Link<T> next = null)
{
Data = data;
Next = next;
}
}
然後是以這個節點類爲基礎,創建單鏈表類:這裏簡單實現了單鏈表的兩個功能添加和輸出
class LinkList<T>
{
Link<T> Head = new Link<T>(default(T), null);
/// <summary>
/// 增加數據
/// </summary>
public void AddData(T Data)
{
Link<T> link = new Link<T>(Data);
if (link.Data.GetType() != Head.Data.GetType())
{
throw new Exception("添加的類型和之前的不一樣");
}
if (Head.Next == null)
{
Head.Next = link;
}
else if (Head.Next != null)
{
link.Next = Head.Next;
Head.Next = link;
}
}
/// <summary>
/// 打印全部數據
/// </summary>
public void PrintAllData()
{
Link<T> TempHead = Head;
while (TempHead.Next != null)
{
Console.WriteLine(TempHead.Next.Data);
TempHead = TempHead.Next;
}
}
}
測試的話,可以拿下面這個Main函數測試:
class MainTest
{
static void Main(string[] args)
{
LinkList<int> Test = new LinkList<int>();
int[] array = { 1, 25, 12, 33, 26, 33, 63 };
for (int i = 0; i < array.Length; i++)
{
Test.AddData(array[i]);
}
Test.PrintAllData();
}
}