fuill 2021-10-09 14:04 采纳率: 68.2%
浏览 72
已结题

升序链表插入值并保持升序问题

输入一个升序的链表,插入一个值并保持升序
但输出的时候插入的值会到后面一位
这咋改

#include "slnklist.h"
void insert(linklist head,datatype x)
{
    linklist p, q, s;
    s=(linklist)malloc(sizeof(struct node));
    s->data=x;
    s->next=NULL;
    q=head;
    p=head->next;
    while(p!=NULL&&p->data<=x)
    {
        
         q=p;p=p->next;
    }
    if(p)
    {
        s->next=p->next;
        p->next=s;
    }
    else 
    {
        s->next=q->next;
        q->next=s;
    }  
} 
main()
{
    
    linklist L;
    datatype a,b;
    L=creatbyqueue();
    printf("请输要插入的值:");
    scanf("%d",&a);
    insert(L,a);
    print(L);
}


img

  • 写回答

2条回答 默认 最新

  • qfl_sdu 2021-10-09 14:35
    关注
    q=head;
        p=head->next;
        while(p!=NULL&&p->data<=x)
        {
            q=p;p=p->next;
        }
        if(p)
        {
            q->next = s;
            s->next = p;
        }
        else 
        {
            q->next = s;
        }  
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月19日
  • 已采纳回答 10月11日
  • 创建了问题 10月9日

悬赏问题

  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题