数据结构----链表的增和插入(2018/10/23)
程序员文章站
2022-04-15 11:29:01
链表方便于增和删 链表的增和插入 因为链表没有下标所以增的话需要一个类似于标签的node来指示! 代码一:(构造函数,初始化) 代码二:(主要的实现方法!!!重点) 代码三:(实现) 输出:6 linklist包含的元素为(1,1000,2,3,4,5) ......
链表方便于增和删
链表的增和插入
因为链表没有下标所以增的话需要一个类似于标签的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)