欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

数据结构----链表的增和插入(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)