线性表基本问题!!!

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);
}
...全文
132 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
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);
}

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧