| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4045 人关注过本帖
标题:关于C语言数据结构单链表初始化的问题
只看楼主 加入收藏
EricZhan
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2010-7-9
结帖率:86.67%
收藏
已结贴  问题点数:10 回复次数:6 
关于C语言数据结构单链表初始化的问题
这是我在书上看到的例子:
typedef struct
{
    DateType date;
    struct Node *next;
}*Linklist;

void InitList(LinkList *head)
/*将单链表初始化为空。动态生成一个头结点,并将头结点的指针域置为空。*/
{
    if((*head=(LinkList)malloc(sizeof(ListNode)))==NULL)        /*为头结点分配一个存储空间*/
        exit(-1);
    (*head)->next=NULL;                /*将单链表的头结点指针域置为空*/
}
我不明白这里为什么要用二级指针LinkList *head.
这样不可以吗?
void InitList(LinkList head)
/*将单链表初始化为空。动态生成一个头结点,并将头结点的指针域置为空。*/
{
    if((head=(LinkList)malloc(sizeof(ListNode)))==NULL)        /*为头结点分配一个存储空间*/
        exit(-1);
    head->next=NULL;                /*将单链表的头结点指针域置为空*/
}

教材说”因为单链表操作用需要修改头指针,所以要用二级指针初始化“。我还不明白这句话。
求高手指点。最好能像未命名的图片一样描述一下,之后发送到我的邮箱s461934079@
拜托了,我想了好久都不明白这个问题
未命名.zip (3.36 KB)


[ 本帖最后由 EricZhan 于 2010-8-20 08:43 编辑 ]
搜索更多相关主题的帖子: 数据结构 C语言 单链 
2010-08-20 08:23
wwqiu
Rank: 2
等 级:论坛游民
帖 子:19
专家分:12
注 册:2010-7-28
收藏
得分:2 
你可能参数传递那里理解吾是很好吧,如果按你那种做法似乎不太行,因为malloc就已经返回一个指针了,如果你不用二级指针,就不能改变原来指向头结点的那个指针
因为你定义:
linklist A;
而你要通过二级指针来改变A的值,也就是使它指向你刚申请的结点空间
2010-08-20 11:26
EricZhan
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2010-7-9
收藏
得分:0 
回复 2楼 wwqiu
你的意思是不是在创建的空间前面再创建一个head指针,指向这个空间?
2010-08-21 08:40
acman
Rank: 1
来 自:郑州
等 级:新手上路
帖 子:12
专家分:5
注 册:2010-8-21
收藏
得分:2 
单链表的初始化  就是  做一个 头指针和一个尾指针
head=last=(struct pp*)malloc(sizeof(struct pp));
以后 每一次 用的时候 想要加进去 就在结尾处加  如果要排序的话 就从head 开始  一个一个找  如果删除 .......
2010-08-21 11:19
wwqiu
Rank: 2
等 级:论坛游民
帖 子:19
专家分:12
注 册:2010-7-28
收藏
得分:0 
差不多那个意思,你在申请一个空间之前,再临时建立一个指针,指向那空间,而且用那临时指针来改变你的linklist A中A的值,使A也指向那空间,完全这些之后,你那初使化函数结束,而那临时指针也会释放,而那A依然会指向那新申请的空间,这就正式完全初使化
2010-08-21 12:33
LegendofMine
该用户已被删除
收藏
得分:2 
提示: 作者被禁止或删除 内容自动屏蔽
2010-08-22 17:18
快速回复:关于C语言数据结构单链表初始化的问题
数据加载中...
 
   



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

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