当前位置:   article > 正文

单向链表的三种插入方式#链表#单项链表_单链表插入

单链表插入

链表

 

单项链表一般有三种插入方式

1.头插,在头节点后,首节点前插入

 2.尾插,从末尾插入

 3.从任意位置插入

 

  1. int input_func(Link *pHead,int pos,data_type item)
  2. {
  3. int i;
  4. if(NULL == pHead)
  5. {
  6. perror("pHead_NULL");
  7. return -1;
  8. }
  9. Link *pNew = NULL;
  10. pNew = (Link *)malloc(sizeof(Link));
  11. if(NULL == pNew)
  12. {
  13. perror("pNew_MALLOC_ERROR!");
  14. return -1;
  15. }
  16. Link *pPre = NULL;
  17. //定义一个位置插入
  18. Link *pTail = NULL;
  19. switch(pos)
  20. {
  21. //首插法
  22. case 1:
  23. if(pHead->pNext != NULL)
  24. {
  25. pNew->pNext = pHead->pNext;
  26. }
  27. pHead->pNext = pNew;
  28. pNew->data = item;
  29. break;
  30. //尾插法
  31. case -1:
  32. pTail = pHead;
  33. while(pHead->pNext != NULL)
  34. {
  35. pTail = pTail->pNext;
  36. }
  37. pTail->pNext = pNew;
  38. pNew->data = item;
  39. break;
  40. //从任意位置插入
  41. case 2:
  42. pPre = pHead;
  43. //找到要插入节点的前一个节点
  44. //当pPre不为空的情况下移动pos-1次
  45. while(pPre != NULL & i<pos-1)
  46. {
  47. pPre = pPre->pNext;
  48. i++;
  49. }
  50. //保护插入节点后的所有节点
  51. pNew->pNext = pNew;
  52. //插入
  53. pPre->pNext=pNew;
  54. break;
  55. }
  56. return 0;
  57. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/代码探险家/article/detail/762094
推荐阅读
相关标签
  

闽ICP备14008679号