标题:创建单链表问题
只看楼主
忆泪
Rank: 2
等 级:论坛游民
帖 子:42
专家分:49
注 册:2011-10-22
结帖率:75%
已结贴  问题点数:5 回复次数:3 
创建单链表问题
程序代码:
/*创建链表*/
#include<stdio.h>
#include<stdlib.h>
struct list
{
    int data;
    struct list *next;
};
typedef struct list node;
typedef node *link;
void main()
{
    link ptr,head;
    int num,i;
    head=(link)malloc(sizeof(node));
    ptr=head;
    printf("please input five numbers\n");
    for(i=0;i<=4;i++)
    {
        scanf("%d",&num);
        ptr->data=num;
        ptr->next=(link)malloc(sizeof(node));
        if(i==4)
            ptr->next=NULL;
        else ptr=ptr->next;
    }
    ptr=head;
    while(ptr!=NULL)
    {
        printf("The number is %d\n",ptr->data);
        ptr=ptr->next;
    }
}

加粗加下划线的两个语句功能各是怎样?为什么要重复使用同一个语句两次?
搜索更多相关主题的帖子: next 
2011-10-23 20:05
丞相杀手
Rank: 6Rank: 6
等 级:侠之大者
帖 子:203
专家分:462
注 册:2011-1-11
得分:4 
head 是单链表的头指针,ptr是操作指针

两句功能都是一样的,都是让ptr指向链表的头指针

但是在第一个下划线的下面的循环中,ptr所指的位置是发生了变化的。

当第一组 批量操作 完成后,在执行一个下划线语句,使ptr回到开始的位置,再开始第二组 批量操作

斗不过疯子,不参与争论。
2011-10-23 20:19
忆泪
Rank: 2
等 级:论坛游民
帖 子:42
专家分:49
注 册:2011-10-22
得分:0 
回复 2楼 丞相杀手
谢啦,这下就明白啦。呵呵。谢谢
2011-10-23 20:33
yj269172025
Rank: 2
等 级:论坛游民
帖 子:41
专家分:81
注 册:2011-9-29
得分:1 
第一个是用ptr为链表创建而用,第二个是为了方便遍历而用,其实都是保证头指针不被改变
2011-10-23 20:45



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-353249-1-1.html




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

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