编译没错但是运行一直超时
看了半天不知道怎么回事 求求大佬帮忙看看 老师不理人 自学真的难受
题目在最后边
#include
#include
typedef struct Node{
int data;
struct Node *pNext;
}NODE,*PNODE;
PNODE create_list(int n)
{
int i;
int val;
PNODE pHead = (PNODE)malloc(sizeof(NODE));
if (NULL == pHead)
{
printf("分配失败, 程序终止!\n");
exit(-1);
}
PNODE pTail = pHead;
pTail->pNext = NULL;
for (i=0; i<n; ++i)
{
scanf("%d", &val);
PNODE pNew = (PNODE)malloc(sizeof(NODE));
if (NULL == pNew)
{
printf("分配失败, 程序终止!\n");
exit(-1);
}
pNew->data = val;
pTail->pNext = pNew;
pNew->pNext = NULL;
pTail = pNew;
}
return pHead;
}
void traverse_list(PNODE pHead)
{
PNODE p = pHead->pNext;
while(p!=NULL)
{
printf("%d ",p->data);
p = p->pNext;
}
printf("\n");
return;
}
void sort(PNODE pHead,int x)
{
int i=1;
PNODE p = (PNODE)malloc(sizeof(NODE));
p = pHead->pNext;
PNODE r = (PNODE)malloc(sizeof(NODE));
while(p!=NULL&&p->data>=x)
{
i++;
p = p->pNext;
} // 找到插入位置
r->data = x;
r->pNext = p->pNext;
p->pNext = r;
if(i==1)
{
r->data = x;
r->pNext = p;
pHead->pNext = r;
}
printf("%d",i);
}
int main()
{
int n,x;
PNODE pHead = NULL;
while(scanf("%d",&n)!=EOF)
{
pHead =create_list(n);
scanf("%d",&x);
if(n==0)
{
printf("%d",&x);
}
else
{
sort(pHead,x);
traverse_list(pHead);
}
}
return 0;
}