数据结构 c语言版 线性表就地逆置。我的这个程序哪里出错了,大神帮忙看看,谢谢!

2025-01-05 11:26:03
推荐回答(1个)
回答1:

楼主这个程序啊,
第一:creatlist()函数写得不是很合理,每次创建链表会浪费一个空间,在最后一次分配空间之后,输入数据等于-1就没有用到其分配的空间。
第二:invelist()函数逻辑不对
linklist *invelist()
{
linklist *p,*q;
p=head->next; //p指向第一个节点,保存第一个节点
head->next=NULL; //头结点反转,指向NULL
while(p!=NULL)//向前遍历
{
q=p; //保存当前节点
p=p->next; //当前节点的下一个节点值
q->next=head->next; //这里head->next为NULL啊,肯定会出错啦,不分析了,楼主再缕缕思路
head->next=q;
}
return(head);
}