| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 521 人关注过本帖
标题:创建单链表问题
只看楼主 加入收藏
忆泪
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
快速回复:创建单链表问题
数据加载中...
 
   



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

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