数据结构----链表的增和插入(2018/10/23)

链表方便于增和删

链表的增和插入

因为链表没有下标所以增的话需要一个类似于标签的node来指示!

代码一:(构造函数,初始化)

 1 namespace 链表
 2 {
 3     public class Node
 4     {
 5         public int Data;
 6         //这个就是地址
 7         public Node Next;
 8         // 构造函数目的就是初始化
 9         public Node()
10         {
11             Data = default(int);
12             Next = null;
13         }       
14         public Node(int  value)
15         {
16             Data = value;
17             Next = null;
18         }
19     }
20 }

代码二:(主要的实现方法!!!重点)

 1 using System;
 2 namespace 链表
 3 {
 4     //链表都是有头部节点的 简称为头结点 头结点不参与运算
 5     public class LinkList
 6     {
 7         private Node _head;
 8         private int _count;
 9         public LinkList()
10         {
11             _head = new Node();
12             _count = 0;
13         }
14         public void AddItem(Node newNode)
15         {
16             //找到头结点
17             Node tmpNode = _head;
18             //循环找到最后结点
19             while (tmpNode.Next != null)
20             {
21                 //一直下移
22                 tmpNode = tmpNode.Next;
23             }
24               //将最后结点和即将插入的结点链接
25             tmpNode.Next = newNode;
26             //个数++
27             _count++;
28         }
29         public int GetLength()
30         {
31             return _count;
32         }
33         public void Insert(int index, Node newNode)
34         { 
35             if (index < 0 || index > _count)
36             {
37                 Console.WriteLine("Over");
38                 return;
39             }
40             Node tmpNode = _head;
41             for (int i = 0; i < index; i++)
42             {
43                 tmpNode = tmpNode.Next;
44             }
45             newNode.Next = tmpNode.Next;
46             tmpNode.Next = newNode;
47             _count++;
48         }
49     }
50 }

 

代码三:(实现)

 1 using System;
 2 namespace 链表
 3 {
 4     internal class Program
 5     {
 6         public static void Main(string[] args)
 7         {
 8             LinkList linkList = new LinkList();
 9             linkList.AddItem(new Node(1));
10             linkList.AddItem(new Node(2));
11             linkList.AddItem(new Node(3));
12             linkList.AddItem(new Node(4));
13             linkList.AddItem(new Node(5));
14             linkList.Insert(1,new Node(1000));
15             Console.WriteLine(linkList.GetLength());
16             Console.Read();
17         }
18     }
19 }

输出:6

linklist包含的元素为(1,1000,2,3,4,5)

posted @ 2018-10-23 16:40  薄荷グ微凉べ  阅读(321)  评论(0编辑  收藏  举报