当前位置:   article > 正文

单链表不带头结点C语言详细代码实现_lnode *new_node = (lnode *)malloc(sizeof(lnode));

lnode *new_node = (lnode *)malloc(sizeof(lnode));
  1. //单链表不带头结点
  2. #include<stdio.h>
  3. #include<stdlib.h>
  4. typedef struct LNode{
  5. int data;
  6. struct LNode *next;
  7. }LNode, * LinkList;
  8. LinkList initList(LinkList list){
  9. list=NULL;
  10. return list;
  11. }
  12. //插数据(第一个位置)(指定位置)
  13. LinkList insertFirst(LinkList list,int index,int data){
  14. if(index == 1){
  15. LNode *newNode = (LNode *)malloc(sizeof(LNode));
  16. if(newNode==NULL){
  17. return list;
  18. }
  19. (*newNode).next = list;
  20. list = newNode;
  21. (*newNode).data = data;
  22. return list;
  23. }
  24. return list;
  25. }
  26. //插数据(指定位置)
  27. int insertList(LinkList list,int index,int data){
  28. LNode *tmp=list;
  29. int j=1;
  30. if(list==NULL){
  31. return 0;
  32. }
  33. if(index<2){
  34. return 0;
  35. }
  36. while(tmp!=NULL&&j<index-1){
  37. tmp=(*tmp).next;
  38. j++;
  39. }
  40. if(tmp==NULL){
  41. return 0;
  42. }
  43. LNode *newNode=(LNode *)malloc(sizeof(LNode));
  44. if(newNode==NULL){
  45. return 0;
  46. }
  47. (*newNode).data=data;
  48. (*newNode).next=(*tmp).next;
  49. (*tmp).next=newNode;
  50. return 1;
  51. }
  52. //插数据(指定结点后)
  53. int insertNextNode(LNode *p,int data){
  54. if(p==NULL){
  55. return 0;
  56. }
  57. LNode *newNode=(LNode *)malloc(sizeof(LNode));
  58. if(newNode==NULL){
  59. return 0;
  60. }
  61. (*newNode).data=data;
  62. (*newNode).next=(*p).next;
  63. (
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/426244
推荐阅读
相关标签
  

闽ICP备14008679号