Katelisa 2022-03-21 16:56 采纳率: 86.4%
浏览 159
已结题

下面的函数能够实现在一个带头结点的递增有序的单链表中插入一个元素x,使得单链表仍然保持有序吗?该如何修改

int InsertListInOrder(LinkList L, ElemType x)
{ Node *s;

s=(Node *)malloc(sizeof(Node));
if (s==NULL) return ERROR;
s->data=x;
L=L->next;
while ( L!=NULL )
if ( x>L->data )
L=L->next;
else
{ s->next=L->next;
L->next=s;
}
return OK;
}

  • 写回答

1条回答 默认 最新

  • 浪客 2022-03-21 17:33
    关注

    试试这个

    
    int InsertListInOrder(LinkList L, ElemType x)
    { 
        Node *s;
        s=(Node *)malloc(sizeof(Node));
        if (s==NULL) return ERROR;
        s->data=x;
        LinkList p=L;
        L=L->next;
        while ( L!=NULL )
        {
            if ( x>L->data )
            {
                p=L;
                L=L->next;            
            }
            else
            {             
                s->next=p->next;
                p->next=s;
                break;
            }
        }
        return OK;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 3月29日
  • 已采纳回答 3月21日
  • 创建了问题 3月21日