| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 873 人关注过本帖
标题:关于单链表的尾插入法若干疑问
只看楼主 加入收藏
maiiho
Rank: 1
等 级:新手上路
帖 子:94
专家分:7
注 册:2008-7-17
结帖率:50%
收藏
 问题点数:0 回复次数:2 
关于单链表的尾插入法若干疑问
typedef struct node
{
    char data;
    struct node *next;
}SNode;
void CreateListR(SNode *&L,char a[],int n)
{
  SNode *s,*r;
  int i;
  L=(SNode *)malloc(sizeof(SNode));
  L->next=NULL;
  r=L;
  for(i=0;i<n;i++)
   {
      s=(SNode *)malloc(sizeof(SNode));
      s->data=a[i];
      r->next=s;
      r=s;
    }
r->next=NULL;
}
---------------------------------------------------------------------------------------
红色部分表示r被赋值了2次,请问,这两次地址,是后一次覆盖前一次的还是同时存在?
我这样认为的原因是,r没有被分配内存,如果分配内存,只能存放一个地址,对吗?


另外一个是r->next=s; 是把s的地址,赋值给r的next成员
紧接着下面的r=s;又是为什么? s的地址不是已经赋值给r了吗?
搜索更多相关主题的帖子: 单链 疑问 
2008-11-20 22:01
快速回复:关于单链表的尾插入法若干疑问
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.040132 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved