鱼C论坛

 找回密码
 立即注册
查看: 2714|回复: 4

[已解决]数据结构第十二讲代码中的一些问题

[复制链接]
发表于 2017-11-23 20:40:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
数据结构第十二讲源代码中: LinkList p......,p = (Node *)malloc(sizeof(Node)),p到底是什么,它是node类型的吗?
*L = (LinkList)malloc(sizeof(Node))线性表L已经申请了动态空间,那P为什么还要申请动态空间?
最佳答案
2017-11-27 22:51:25
1.(*L)是头节点,L是指向头节点指针的指针,也就是我们说的二级指针。
2.每次新建都是这样。
3.P=(LinkList)malloc(sizeof(Node))是循环一次生成一个节点。
4.这里插入节点用的是头插法,每一个循环生成的节点都插入在(*L)->Next。
5.不能,因为L是一个指向指针的指针, 修改L只是修改了2级指针,并不能改变(*L)->Next的值。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-11-23 23:08:51 | 显示全部楼层
很尴尬,没人回复解释一下吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-25 17:42:57 | 显示全部楼层
你好 能给我看看源码吗? 我估计是添加一个节点。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-11-27 17:13:29 | 显示全部楼层
qq1242009750 发表于 2017-11-25 17:42
你好 能给我看看源码吗? 我估计是添加一个节点。

/* 头插法建立单链表示例 */

void CreateListHead(LinkList *L, int n)
{
    LinkList p;
    // 注意:linkList 声明有*,后续调用就有*,p22所示
    //     LinkList 声明没有*,后续就没有,p18所示
    int i;

  // 长和time结合,生成更加像随机数的数
    srand(time(0));   // 初始化随机数种子

    *L = (LinkList)malloc(sizeof(Node));
    (*L)->next = NULL;

    for( i=0; i < n; i++ )
    {
        p = (LinkList)malloc(sizeof(Node));  // 生成新结点
        // 得到两位数,就和100取余
        p->data = rand()%100+1;
        p->next = (*L)->next;
        // *号优先级底,所以用括号包起来
        (*L)->next = p;
    }
}
。。。
//我知道上面的代码省略了对LinkList类型的定义(定义在16讲中),代码中L是头结点还是头指针?每次新建都默认是那样的吗?:p = (LinkList)malloc(sizeof(Node));一次循环生成一个结点吗?每次循环插入一个结点L都是最前面的那个头xx吧。(*L)换成L应该没什么问题吧。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-27 22:51:25 | 显示全部楼层    本楼为最佳答案   
1.(*L)是头节点,L是指向头节点指针的指针,也就是我们说的二级指针。
2.每次新建都是这样。
3.P=(LinkList)malloc(sizeof(Node))是循环一次生成一个节点。
4.这里插入节点用的是头插法,每一个循环生成的节点都插入在(*L)->Next。
5.不能,因为L是一个指向指针的指针, 修改L只是修改了2级指针,并不能改变(*L)->Next的值。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-28 22:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表