用C#实现单链表(创建单链表,在头部插入)

初学C#记录历程,记录心情。
 
节点类和链表类参考前篇。

在接口IList中增加:

  void CreateListHead(int length); //创建单链表,在头部插入结点

在LinkList类中创建方法:

View Code
 1  /// <summary>

 2             /// 创建单链表

 3             /// </summary>

 4             /// <param name="length">单链表长度</param>

 5             public void CreateListHead(int length)

 6             {

 7                 if (length <= 0)

 8                 {

 9                     Console.WriteLine("Error! the length of list is incorrect.please run again");

10                     return;

11                 }

12                 else

13                 {

14                     Console.WriteLine("Please input the node data of the list:");

15                     for (int i = length; i > 0; i--)

16                     {

17                         T item = default(T);   //定义新结点数据域

18                         item = (T)Convert.ChangeType(Console.ReadLine(), typeof(T)); //从键盘输入的字符串转换成T。当不知道当前类型要转换成什么类型的情况下,用Convert.ChangeType(value,typeof(type))

19                         LinkNode<T> NewNode = new LinkNode<T>(item);//new一个新结点

20                         NewNode.Next = this.Head;

21                         this.Head = NewNode;

22                         //NewNode.Data = item;

23                     }

24                 }

25             }

验证创建是否正确:

View Code
 1 static LinkList<int> MyList = new LinkList<int>();

 2                 static LinkNode<int> node;

 3 

 4                private static LinkNode<int> PrintData(LinkNode<int> node)

 5                {

 6                    node = MyList.Head;

 7                    while (node != null)

 8                    {

 9                        Console.WriteLine("The data of List are:{0}", node.Data);

10                        node = node.Next;

11                    }

12                    return node;

13                }

14 

15                 static void Main(string[] args)

16                 {

17                           

18                     Console.Write("Pleae input the lenght of your ListLink,n= ");

19                     string str = Console.ReadLine();

20                     int n;

21                     n= Convert.ToInt32(str);

22                     MyList.CreateListHead(n);

23 

24                     if (MyList.Head == null)

25                     {

26                         Console.WriteLine("List is empty");

27                     }

28                     else

29                     {

30                       Console.WriteLine("After created:");

31                       node = PrintData(node);

32                     }

33                     Console.WriteLine("Please Enter and exit.Thanks!");

34                     Console.ReadLine();

35                 }

 

 

 

你可能感兴趣的:(单链表)