线性表基本问题!!!

whl760315 2002-05-10 08:29:15
各位大哥,我在学数据结构,编了一个链式存储结构线性表,在VC6.0环境下运行时,当输入(建表)超过5个数据时(设计时只让他输入5个数据),就进入死循环后面求表长再也不运行,请问是怎么回事?不胜感激!!!

#define NULL 0

typedef struct node *pointer;/*定义变量*/
struct node
{
int data;
pointer next;
};
typedef pointer lklist;


lklist create_lklist()/*建表 只输入5个整型数据*/
{
lklist head,p,q;
int x,j;
head=malloc(sizeof(struct node));
p=head;
printf("\n请输入数据:\n");
scanf("%d",&x);
for(j=0;j<5;j++)
{
q=malloc(sizeof(struct node));
q->data=x;
p->next=q;
p=q;
printf("\n请输入数据:\n");
scanf("%d",&x);
}
p->next=NULL;
return(head);
}

int length_lklist(lklist head)/*求表长*/
{
lklist p=head;
int j=0;
while(p->next!=NULL)
{
p=p->next;
j++;
}
return(j);
}


void out_lklist(lklist head)
{
int i=0;
lklist p=head;
while(p->next!=NULL)
{
i++;
printf("\n结点%d数据为:%d",i,p->data);
}
return;
}


main()
{
lklist head1,p;
int length;
head1=create_lklist();
out_lklist(head1);
length=length_lklist(head1);
printf("\n表长为:%d",length);
}
...全文
74 点赞 收藏 3
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
whl760315 2002-05-12
xuying这位大哥提醒我非常准确,就是丢了p=p->next;害的我编译没有通过!!!
回复
xuying 2002-05-11
void out_lklist(lklist head)
{
int i=0;
lklist p=head;
while(p->next!=NULL)
{
i++;
printf("\n结点%d数据为:%d",i,p->data);
//////////////////////////////////////////////////////////////
p = p->next;
//////////////////////////////////////////////////////////////
}
return;
}

回复
frog_sea 2002-05-10
lklist create_lklist()/*建表 只输入5个整型数据*/
{
lklist head,p,q;
int x,j;
head=malloc(sizeof(struct node));
p=head;
printf("\n请输入数据:\n");
scanf("%d",&x);
for(j=0;j<5;j++)
{
q=malloc(sizeof(struct node));
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
改成q=(lklist*)malloc(sizeof(struct node));
q->data=x;
p->next=q;
p=q;
printf("\n请输入数据:\n");
scanf("%d",&x);
}
p->next=NULL;
return(head);
}
回复
相关推荐
发帖
数据结构与算法
创建于2007-08-27

3.2w+

社区成员

数据结构与算法相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2002-05-10 08:29
社区公告
暂无公告