| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 753 人关注过本帖
标题:数据结构里的一个问题
只看楼主 加入收藏
此夜望月
Rank: 2
等 级:论坛游民
帖 子:55
专家分:43
注 册:2012-12-29
结帖率:87.5%
收藏
已结贴  问题点数:10 回复次数:6 
数据结构里的一个问题
#include<stdlib.h>
#include<stdio.h>

#define MAX 10

typedef struct node{
    int weight;
    struct node *next;
}listnode,*listnodeptr;

    int main()
    {
        int i = 0,j = 0;
    listnodeptr bt,p;
    bt = (listnodeptr)malloc(sizeof(listnode));
    p = bt;
    for(;i<MAX;++i){                                                      
    p->next = NULL;
    p->weight = 0;
    p = p->next;
    p = (listnodeptr)malloc(sizeof(listnode));
    }

    p = bt;

        for(;j<MAX;++j){
            printf("NO.%d node is %d\n",j+1,p->weight);
                p = p->next;
        }
        system("pause");
        return 0;
    }


最后显示的是    NO.1 node is 0
然后其余的九个节点并未显示,并且出现RUN-TIME error的报错
求大神指教啊~~~~
搜索更多相关主题的帖子: next 结构 include 
2013-04-29 23:09
笑傲
Rank: 8Rank: 8
来 自:迪拜
等 级:蝙蝠侠
威 望:5
帖 子:223
专家分:856
注 册:2013-3-9
收藏
得分:4 
回复 楼主 此夜望月
#include<stdlib.h>
#include<stdio.h>

#define MAX 10

typedef struct node{
    int weight;
    struct node *next;
}listnode,*listnodeptr;

    int main()
    {
        int i = 0,j = 0;
    listnodeptr bt,p ;
    bt = (listnodeptr)malloc(sizeof(listnode));
    p = bt;
    for(;i<MAX;++i){                                                      
    p->weight = 0;
    p->next = (listnodeptr)malloc(sizeof(listnode));
    p = p->next;
    }
    p = bt;

        for(;j<MAX;++j){
            printf("NO.%d node is %d\n",j+1,p->weight);
                p = p->next;
        }
        system("pause");
        return 0;
    }
看看是否合你的意!

练就一身本领,只为笑傲江湖!
2013-04-29 23:22
此夜望月
Rank: 2
等 级:论坛游民
帖 子:55
专家分:43
注 册:2012-12-29
收藏
得分:0 
回复 2楼 笑傲
额,为什么你的可以我的有问题呢。。。本来我的开始的时候也是
先 p->next=(listnodeptr)malloc(sizeof(listnode));
再p=p->next;的但是因为报错了,我才改成了那样,怎么你的又对了咧~~~~
2013-04-29 23:55
此夜望月
Rank: 2
等 级:论坛游民
帖 子:55
专家分:43
注 册:2012-12-29
收藏
得分:0 
回复 2楼 笑傲
那这样又是怎么错的呢,其实我想要用函数调用的,建立一个链表的函数,但是不知道该怎么搞了。。。
#include<stdlib.h>
#include<stdio.h>

#define MAX 10

typedef struct node{
    int weight;
    struct node *next;
}listnode,*listnodeptr;

void list(listnodeptr bt,listnodeptr p){
    bt = (listnodeptr)malloc(sizeof(listnode));
    p = bt;
    for(int i = 0;i<MAX;++i){                                                      
    p->weight = 0;
    p->next = (listnodeptr)malloc(sizeof(listnode));
    p = p->next;
    }
}
    int main()
    {
        int i = 0,j = 0;
        listnodeptr p,bt;
    list(bt,p);
        for(;j<MAX;++j){
            printf("NO.%d node is %d\n",j+1,p->weight);
                p = p->next;
        }
        system("pause");
        return 0;
    }
2013-04-30 00:04
dengluoy
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:127
专家分:165
注 册:2013-2-5
收藏
得分:4 
上面的错是你没有明白指针是一个指向的问题。
不知道你上面懂没懂,如果不问在问。
现在我帮你解释你有调用函数的这个给你解释。
你应该把函数的参数修改成指向指针的指针。
不然无法返回给bt。
或者换用返回指针类型的函数才能接收。


一同学习, 一同进步
2013-04-30 01:13
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:4 
回复 5楼 dengluoy
头像是你自己吗?很Q的样子,哈哈~

授人以渔,不授人以鱼。
2013-04-30 12:32
笑傲
Rank: 8Rank: 8
来 自:迪拜
等 级:蝙蝠侠
威 望:5
帖 子:223
专家分:856
注 册:2013-3-9
收藏
得分:0 
回复 4楼 此夜望月
#include<stdlib.h>
#include<stdio.h>

#define MAX 10

typedef struct node{
    int weight;
    struct node *next;
}listnode,*listnodeptr;

listnodeptr list(listnodeptr bt,listnodeptr p){
    bt = (listnodeptr)malloc(sizeof(listnode));
    p = bt;
    for(int i = 0;i<MAX;++i){                                                      
    p->weight = 0;
    p->next = (listnodeptr)malloc(sizeof(listnode));
    p = p->next;
    }
    return bt;
}
    int main()
    {
        int i = 0,j = 0;
        listnodeptr p = NULL ,bt = NULL;
    p = list(bt,p);
        for(;j<MAX;++j){
            printf("NO.%d node is %d\n",j+1,p->weight);
                p = p->next;
        }
        system("pause");
        return 0;
    }
修改一下函数的返回值就好了

[ 本帖最后由 笑傲 于 2013-4-30 16:00 编辑 ]

练就一身本领,只为笑傲江湖!
2013-04-30 15:59
快速回复:数据结构里的一个问题
数据加载中...
 
   



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

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