qq_34360929 2016-06-05 10:02 采纳率: 0%
浏览 1257

数据结构的一元稀疏多项式代码,在插入过程中的循环,没转过弯来,望有大神提点!

void Insert(Polyn p,Polyn head){

if(p->coef==0)

free(p); //若p的系数为0则释放结点
else
{

Polyn q1,q2;
q1=head;
q2=head->next;

while(q2&& p->expn > q2->expn)

        {                         //查找p的插入位置
           q1=q2;               //确定输出的多项式为升幂排列
           q2=q2->next; 
        }  
     if(q2&& p->expn == q2->expn)  
        {                         //若输入的指数相同,则合并同类项
           q2->coef += p->coef; 
           free(p);  
           if(q2->coef==0)     //q2项系数为0时,直接插入
              {                     
                q1->next=q2->next; 
                free(q2); 
              } 
        }  
    else  
        {                       //指数为新时将结点插入
           p->next=q2; 
           q1->next=p; 
        } 
 } 

}

  • 写回答

1条回答 默认 最新

  • 小灸舞 2016-06-05 12:02
    关注

    不知道你是哪里转不过弯?注释的挺清楚的啊.
    1.首先while循环找到待插入的位置
    2.判断找到的位置的expn和p的expn是不是一样的,一样的话系数相加就好(如果相加以后变成0了就删除掉这个项)
    3.原来的多项式没有和待插入的p的expn一样的,说明待插入的p的expn是最大的,直接在多项式尾部插入p

    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题