经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » C# » 查看文章
数据结构----链表的增和插入(2018/10/23)
来源:cnblogs  作者:薄荷グ微凉べ  时间:2018/10/25 9:37:22  对本文有异议

链表方便于增和删

链表的增和插入

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

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

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

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

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

 

代码三:(实现)

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

输出:6

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

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号