鱼C论坛

 找回密码
 立即注册
查看: 4985|回复: 10

请求大神帮忙

[复制链接]
发表于 2016-7-22 10:47:39 | 显示全部楼层 |阅读模式
10鱼币
/*初始化循环链表*/
void ds_init(node **pNode)                        
{
    int item;
    node *temp;
    node *target;

    printf("输入结点的值,输入0完成初始化\n");

        while(1)
        {
        scanf("%d", &item);
        fflush(stdin);

                if(item == 0)
            return;

        if((*pNode) == NULL)                         //////////////////////////////这个空表示的是什么意思呢?
                { /*循环链表中只有一个结点*/
                        *pNode = (node*)malloc(sizeof(struct CLinkList));
                       
                        if(!(*pNode))
                                exit(0);
                       
                        (*pNode)->data = item;//小甲鱼说这个pNode是第一个结点,那既然是第一个结点的话就是头结点,头结点怎么会有赋给它数值呢?
                  
                        (*pNode)->next = *pNode;
                }
        else
                {
            /*找到next指向第一个结点的结点*/
            for(target = (*pNode); target->next != (*pNode); target = target->next)
                                ;

            /*生成一个新的结点*/
            temp = (node *)malloc(sizeof(struct CLinkList));

                        if(!temp)
                                exit(0);

                        temp->data = item;
            temp->next = *pNode;
            target->next = temp;
        }
    }

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

头像被屏蔽
发表于 2016-7-22 13:32:02 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

头像被屏蔽
发表于 2016-7-22 15:00:12 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-7-22 20:33:52 | 显示全部楼层
m9128213 发表于 2016-7-22 15:00
为空表示首指针没有指向任何东西 如果首指针没有指向任何东西 就malloc(struct)一个首节点
首节点产生了  ...

可是头指针的数据域不是不储存任何信息,或者只储存线性表长度之类的附加信息吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-7-22 20:34:26 | 显示全部楼层
m9128213 发表于 2016-7-22 15:00
为空表示首指针没有指向任何东西 如果首指针没有指向任何东西 就malloc(struct)一个首节点
首节点产生了  ...

说错了,不是头指针,是头结点
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-7-22 20:37:15 | 显示全部楼层
m9128213 发表于 2016-7-22 15:00
为空表示首指针没有指向任何东西 如果首指针没有指向任何东西 就malloc(struct)一个首节点
首节点产生了  ...

(*pNode)->next = *pNode; 这两个(*pNode)不是指同一个东西吧?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-7-22 20:46:11 | 显示全部楼层
m9128213 发表于 2016-7-22 15:00
为空表示首指针没有指向任何东西 如果首指针没有指向任何东西 就malloc(struct)一个首节点
首节点产生了  ...

谢谢你的指点,我突然明白了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

头像被屏蔽
发表于 2016-7-22 20:49:03 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-7-30 17:53:42 | 显示全部楼层
第一个  那个空  代表  这个指针还没有指向  表示这个头结点还没有生成空间
第二个  头结点赋不赋值只看程序员自己  但是循环链表中  如果头结点不赋值  那么最后首尾相接时需要尾结点和第二结点相连
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-9-8 14:21:35 | 显示全部楼层
顶一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-1-7 15:31:50 | 显示全部楼层
学习了,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-23 17:55

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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