标题:求助,关于C中链表的问题
只看楼主
ROGERWHAM
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-1-17
结帖率:0
已结贴  问题点数:20 回复次数:5 
求助,关于C中链表的问题
菜鸟加新人的我突发奇想想在链表中再嵌套一个链表,无奈多次尝试均出现错误,百般思考却不知问题出在何处,求高手指教~谢谢
程序代码:
#include<stdio.h>
#include<string.h>
#include<malloc.h>
#define LEN sizeof(struct Score)
#define Len sizeof(struct student)


struct Score                       /*分数结构体*/
{
    char subject[8];
    float score;
    struct Score *next;
};


struct student                       /*学生结构体*/
{
    long int num;
    char name[8];
    struct Score *Head;
    struct student *next;
};
int n,m;
struct Score *creat()                       /*创建一个分数的动态链表*/
{
    printf("输入科目 分数");
    struct Score *p1=0;
    struct Score *p2=0;
    struct Score *head=0;
    n=0;
    p1=p2=(struct Score*) malloc(LEN);
    scanf("%s%f",p1->subject,&p1->score);
    getchar();
    head=NULL;

 while (p1->subject!="0")

 {
    n++;
    if (n==1) head=p1;
    else p2->next=p1;
    p2=p1;
    printf("输入科目 分数");
    p1=(struct Score*) malloc(LEN);
    scanf("%s%f",p1->subject,&p1->score);
    getchar();

 }
    p2->next =NULL;
    return (head);
}
struct student *create()                       /*创建一个动态链表*/
{
     printf("输入学号 姓名\n");
     struct student *head=0;
     struct student *p1=0;
     struct student *p2=0;
     m=0;
     p1=p2=(struct student*)malloc(Len);
     scanf("%d%s",&p1->num ,p1->name );
     getchar();
     p1->Head =creat();
     head=NULL;

 while(p1->num !=0)

 {
     m++;
     if (m==0) head =p1;
     else p2->next=p1;
     printf("输入学号 姓名\n");
     p2=p1;
     p1=(struct student*)malloc(Len);
     scanf("%d%s",&p1->num ,p1->name);
     getchar();
     p1->Head =creat();

 }
     p2->next=NULL;
     return(head);
}
void main()
{
    struct student *p;
    p=create();
}


搜索更多相关主题的帖子: 突发奇想 
2011-01-17 23:29
刘定邦
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:687
专家分:1570
注 册:2010-9-21
得分:5 
还没学到这个部位..
2011-01-17 23:37
马后炮
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:156
专家分:560
注 册:2010-12-17
得分:5 
链表嵌套链表,你是指二叉树吧

樱之雪,晓之车
2011-01-17 23:45
点线面
Rank: 8Rank: 8
来 自:NO.-1
等 级:蝙蝠侠
帖 子:525
专家分:980
注 册:2011-1-3
得分:5 
怎样觉得只有输入没有输出,而且还没有做释放内存,还有有些变量没有定义
struct student *create()                       /*创建一个动态链表*/
{
     printf("输入学号 姓名\n");
     struct student *head=0;
     struct student *p1=0;
     struct student *p2=0;
     m=0;
     p1=p2=(struct student*)malloc(Len);
     scanf("%d%s",&p1->num ,p1->name );
     getchar();
     p1->Head =creat();
    head=NULL;在那里有定义

小代码,大智慧
2011-01-18 01:17
ROGERWHAM
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-1-17
得分:0 
没有输出,因为我只是想先测试这几个输入函数有没有问题。。。
定义了NULL也还是会出现问题啊。。。在输入第一次的科目和成绩的时候系统就会提示runtime error的错误。
2011-01-18 10:57
iwantto
Rank: 2
来 自:china湖北
等 级:论坛游民
帖 子:8
专家分:11
注 册:2011-1-16
得分:5 
       m=0;
    while(p1->num !=0)
{     m++;
     if (m==0) head =p1;
     else p2->next=p1;
m=1,head还是指向NULL·····

我是来学习的
2011-01-18 15:49



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




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

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