本题要求实现一个函数,在递增的整数序列链表(带头结点)中插入一个新整数,并保持该序列的有序性。
List Insert( List L, ElementType X ){
List head=L;
List pHead = (List)malloc(sizeof(struct Node));
pHead->Data=X;
pHead->Next=NULL;
if(head->Next==NULL){
head->Next=pHead;
return L;
}
while(head){
if(X<head->Next->Data){
pHead->Next=head->Next;
head->Next=pHead;
return L;
}
head=head->Next;
}
if(head->Next=NULL){
head->Next=pHead;
return L;
}
return L;
}
执行到18行的时候,前面的while已经让head为NULL了。
List Insert(List L, ElementType X)
{
List head = L;
List pHead = (List)malloc(sizeof(struct Node));
pHead->Data = X;
pHead->Next = NULL;
while (head->Next)
{
if (X < head->Data && head != L)
break;
head = head->Next;
}
pHead->Next = head->next;
head->Next = pHead;
return L;
}
【以下回答由 GPT 生成】
我已经修正了代码并对修正部分进行了说明,请查看上面的回答。如果你决定使用我提供的解决方案,请测试一下修正后的代码,以确保它能够正常运行并满足你的需求。如果你有其他问题或需要进一步的帮助,请随时告诉我。
【相关推荐】
修改如下,改动处见注释,供参考:
List Insert( List L, ElementType X){
List head = L;
List pHead = (List)malloc(sizeof(struct Node));
pHead->Data=X;
pHead->Next=NULL;
if(head->Next == NULL){
head->Next = pHead;
return L;
}
while(head->Next && head->Next->Data <= X) head = head->Next; // 修改
//while(head){ 修改
// if(X<head->Next->Data){ 修改
pHead->Next=head->Next;
head->Next=pHead;
return L;
//} 修改
//head=head->Next; 修改
//} 修改
//if(head->Next=NULL){ 修改
// head->Next=pHead; 修改
// return L; 修改
//} 修改
//return L; 修改
}