标题:有关动态链表创建,只有部分代码不理解,求高手帮忙
只看楼主
sanjianfei
Rank: 2
等 级:论坛游民
帖 子:48
专家分:53
注 册:2012-2-21
结帖率:87.5%
已结贴  问题点数:20 回复次数:4 
有关动态链表创建,只有部分代码不理解,求高手帮忙
不明白的是链表创建部分的头指针与第一个节点
LINK *create_list()
{
    LINK *h,*r,*s;
    h=(LINK*)malloc(sizeof(LINK));
    r=h;
    r->next=h;      //这个地方r与h相等,含义是什么?
    char ch=getchar();
    ..............
顺便解释一下LINK *create_list() 这种函数调用方式

程序代码:
#include <stdio.h>
#include<malloc.h>
typedef struct Node
{

 char data;

 struct Node *next;
}LINK;
LINK *create_list()
{
    LINK *h,*r,*s;
    h=(LINK*)malloc(sizeof(LINK));
    r=h;
    r->next=h;
    char ch=getchar();
    while(ch!='\n')
    {
        s=(LINK*)malloc(sizeof(LINK));
        s->data=ch;
        r->next=s;
        r=s;
        ch=getchar();
    }
    r->next=NULL;
    return h;
}
void print_list(LINK *h)
{
    LINK *p;
    p=h->next;
    if(p==NULL)
        printf("链表为空");
    else
        while(p!=NULL)
        {
            printf("%c",p->data);
            p=p->next;
        }
}
void main()
{
    LINK *head;
    head=create_list();
    printf("The list is under line:\n");
    print_list(head);
    getchar();
}


[ 本帖最后由 sanjianfei 于 2012-3-23 18:24 编辑 ]
搜索更多相关主题的帖子: color 函数 next 动态 
2012-03-23 18:23
星辰雁
Rank: 4
等 级:业余侠客
威 望:1
帖 子:93
专家分:275
注 册:2011-9-10
得分:5 
表示把申请的内存空间赋给链表。为链表的下一个结点申请内存空间。

不要认为CPU运算速度快就 把所有的问题都推给它去做,程序员应该将代码优化再优化,我们自己能做的决不要让CPU做 ,因为CPU是为用户服务的,不是为我们程序员服务的!
2012-03-23 23:42
C_596322153
Rank: 6Rank: 6
来 自:徽州
等 级:侠之大者
帖 子:182
专家分:466
注 册:2012-1-10
得分:5 
r是指针啊  r=h;r 指向开辟的新内存空间   
 LINK *create_list() 函数返回值是 链表首地址。调用它就是地址赋值给 head 指针
2012-03-24 18:17
tianyi1993
Rank: 1
等 级:新手上路
帖 子:23
专家分:9
注 册:2012-1-24
得分:5 
申请的内存空间赋给指向链表的指针,为链表的下一个结点申请内存空间。话说你要好好看书啊
2012-03-25 18:02
double聪
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:46
专家分:118
注 册:2011-11-19
得分:5 
r->next=h;  这行可以删掉,没什么必要。
LINK *create_list() 该函数的返回值的类型为LINK的指针
2012-03-25 19:17



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




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

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