【C#数据结构】单链表
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();
}
}