免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2061 | 回复: 1
打印 上一主题 下一主题

[C] 链表添结点问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-08-24 13:50 |只看该作者 |倒序浏览
本帖最后由 一页空纸 于 2011-08-24 13:58 编辑
  1. typedef struct node
  2. {int data;
  3. struct node *next;
  4. }ListNode,*Linklist;

  5. void  Add_Node(Linklist L,int data)  //插尾法
  6. {Linklist p,q;
  7. p=(Linklist)malloc(sizeof(ListNode));
  8. p->data=data;
  9. p->next=NULL;
  10. if(L==NULL)
  11. L=p;


  12. else


  13. { q=L;
  14. while(q->next!=NULL)
  15. q=q->next;
  16. q->next=p;}



  17. }


  18. int main(void)


  19. {Linklist head=NULL;
  20. Add_Node(head,data);


  21. }
复制代码
这么写怎么样结点添不上去呢

论坛徽章:
0
2 [报告]
发表于 2011-08-24 16:23 |只看该作者
在你的main里,传入的参数head=NULL,你要添加结点就意味着要修改指针head的值, 修改指针的值(也就是指针的指向)需要传入指针的指针。记住 C语言函数的形参都是使用实参的拷贝, 你这样做, 最后head 还是NULL

两种方法:
1. 加个表头,申请一个表头的内存传进去
2. 将head 随便初始化一个值,然后将&head传进去就行了

当然两个方法都要修改Add_Node函数的参数形式。

慢慢理解吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP