C#数据结构篇(一)线性表
          作者: 寒羽狼 (Dark_Slaer_Tang)
 
            最近,马子跑了,你说女人老是容易翻脸。。。,看来做程序员必定要 “茕茕孑立,行影相吊”悲惨命运了。还是老老实实编程吧,我发现用c# 编一些数据接结构的类也瞒不错的,于是想把数据结构的算法,用C#重写一遍,打发无聊的时光,下面是数据结构中的链表的实现。
       首先定义结点类型,定义了,前一个指针域,后一个指针域,如下:
 
using System;
namespace List
{
 /// <summary>
 /// Summary description for ListNode.
 /// </summary>
// 结点类
 public class ListNode
 {
  public ListNode(int NewValue)
  {
   Value=NewValue;
  }
  /// <summary>
  /// 前一个
  /// </summary>
     
  public ListNode Previous;
  /// <summary>
  /// 后一个
  /// </summary>
  public ListNode Next;
  /// <summary>
  /// 值
  /// </summary>
  public int Value;
 }
}
using System;
namespace List
{
 /// <summary>
 /// 链表类
 /// </summary>
定义结点之后,开始类线性表的操作编程了.在LIST 类中,采用了,Head ,Tail,  Current,三个指针,使用Append ,MoveFrist,MovePrevious,MoveNext,MoveLast ,Delete,InsertAscending,InsertUnAscending ,Clear 实现移动,添加,删除,升序插入,降序插入,清空链表操作,GetCurrentValue() 方法取得当前的值。
 public class Clist
 {
  public Clist()
  { 
   //构造函数
   //初始化
   ListCountValue=0;
   Head=null;
   Tail=null;
  }
  /// <summary>
  /// 头指针
  /// </summary>
  private ListNode Head;
  /// <summary>
  /// 尾指针
  /// </summary>
  
  private ListNode Tail;
  /// <summary>
  /// 当前指针
  /// </summary>
  
  private ListNode Current;
  /// <summary>
  /// 链表数据的个数
  /// </summary>
  
  private int ListCountValue;
  /// <summary>
  /// 尾部添加数据
  /// </summary>
 
  public void Append(int DataValue )
  {
   ListNode NewNode=new ListNode( DataValue);
   
   if (IsNull())  
   //如果头指针为空
   {
    Head=NewNode;
    Tail=NewNode;
    
   }
   else
   {
    Tail.Next =NewNode;
    NewNode.Previous =Tail;
    Tail=NewNode;
    
   }
   Current=NewNode;
   //链表数据个数加一
   ListCountValue+=1;
  }