链表方便于增和删
链表的增和插入
因为链表没有下标所以增的话需要一个类似于标签的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)