Welcome

首页 / 软件开发 / C# / C#如何实现单向链表

C#如何实现单向链表2010-07-12链表是一种重要的数据结构,该结构由节点组成。每个节点包含两部分数据,第一部分是节点本身的数据,第二部分是指向下一个节点的指针。对于单向链表,链表中存在两个特殊的节点,分别为“头节点”和“尾节点”。头节点本身没有数据,只存储下一个节点的指针,尾节点只存储数据。结点的定义及对线性表的操作如下:

首先,定义一个结点类用于对结点的描述。其中,私有成员Value用于储存节点本身的数据,Next用于存储下一个节点的指针,Previous用于存储上一个节点的指针。对于链表的操作,无非是进行节点的查找、插入和删除操作。代码如下:

//结点类
public class ListNode
{
public ListNode(int NewValue)//,int NewCurrent)
{
Value = NewValue;
//Current = NewCurrent;
}
//前一个
public ListNode Previous;
// 后一个
public ListNode Next;
// 值
public int Value;
////指针
//public int Current;
}
然后定义了一个Clist类,主要对线性表基本操作的编程。其中包括,Head、Tail、Current三个指针和Append、MoveFrist、MovePrevious、MoveNext、MoveLast、Delete、InsertAscending、InsertUnAscending、Clear、 GetCurrentValue方法,用于实现移动、添加、删除、升序插入、降序插入、清空链表、取得当前的值等操作。代码如下:

// 定义结点之后,开始类线性表的操作编程了.在ClIST 类中,采用了,Head ,Tail,Current,三个指针,使用Append ,MoveFrist,MovePrevious,MoveNext, MoveLast , Delete, InsertAscending, InsertUnAscending, Clear 实现移动,添加、删除,升序插入,降序插入,清空链表操作,GetCurrentValue() 方法取得当前的值。
public class Clist
{
/// <summary>
/// 初始化线性表
/// </summary>
public Clist()
{
//构造函数
//初始化
ListCountValue = 0;
Head = null;
Tail = null;
}
// 头指针
private ListNode Head;
// 尾指针
private ListNode Tail;
// 当前指针
private ListNode Current;
//链表数据的个数
private int ListCountValue;