为什么只能运行几次?

liubing801124 2004-03-10 03:42:16
#include<stdio.h>
#include<malloc.h>
struct stu
{
int data;
struct stu *next;
}*head;

void insert(int);

void main(){
int data;
do{
scanf("%d",&data);
insert(data);
}while(data!=0);
}
void insert(int data)
{
stu *temp=head;
stu *previous;//拖后指针,总是指向刚刚处理完的指针
stu *newnode;//新的结点指针,总是指向一个新的结点
newnode=(struct stu*)malloc(sizeof(struct stu));
newnode->data=data;
newnode->next=0;
if(head==0)
{
head=newnode;
}
else
{
while(((temp->data)<=data)&&(temp!=0)) //找到一个适合的位置,这个地方你可以用学号
{
previous=temp;
temp=temp->next;
}
if(temp==head)//若头结的数据值大于要插入的结点的数
{ //据值,新结点即为链表的头,原来的头变为当前的链表的头的后继
newnode->next=head;
head=newnode;
}
else
{
newnode->next=temp;
previous->next=newnode;
}
}
}
...全文
25 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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