zoukankan      html  css  js  c++  java
  • 循环链表与稀疏多项式

    问题描述:

    以循环链表做稀疏多项式的存储结构,编写求其导函数的算法,要求利用原多项式中的结点空间存放其导函数,同时释放所有无用结点

    问题分析:

    导函数应该很熟悉,所以写这个算法应该较简单。

    稀疏多项式采用的循环链表存储结构定义为:

    Typedef struct PolyNode{

    PolyTerm data;

    Struct  PolyNode *next; }PolyNode,*PolyLink;

    Typedef  PolyLink LinkedPoly;

    Typedef struct {

    Int  coef;

    Int  exp;

    }PolyTerm;

    Status PolyDifferential(LinkedPoly &L)

    {

       LinkedPoly p,q,pt;

       Q=L;

       P=L->next;

      While(p!=L);

     {

     //如果指数为0,则该项将删除

      If(p->data.exp==0)

      {

         Pt=p;

         P=p->next;

         Q=p;

         Free(pt);

      }

     Else

     {

     P->data.coef=(p->data.coef)*(p->data.exp);

     P->data.exp--;

     Q=p;

     P=p->next;

     }

     }

    Return ok;

    }

     

    问题描述:将一个用循环链表表示的稀疏多项式分成两个仅含奇次项或偶次项,用原链表的结点空间

    问题分析:

    想到前面做的那个题没,差不多,解决方案,也是找到头结点后,然后判断,当是偶次项时,放在头结点的左面,对不?

    Status ListDivideInto2CL(LinkedPoly  &L, LinkedPoly  &L1)

    {

      LinkedPoly p,p1,q,pt;

      Q=L;

      P=L->next;

      P1=L1;

    While(p!=L)

    {

      If(p->data.exp%2==0)

      {

        Pt=p;//pt也可不需要的

        P=p->next;

        Q->next=p;//这相当与把此结点抽离出来了

     

      //然后将此结点给L1

       Pt->next=p1->next;

       P1->next=pt;

       P1=p1->next;

    }

     Else{

      Q=p;

      P=p->next;

      }

     }//while

    Return OK;

    }

  • 相关阅读:
    firefox和ie下面的初始化checkbox
    全球宽带排名出炉 韩国第一中国未入榜(附表)
    逆向查询所有父栏目
    js的点点滴滴
    Treeview绑定数据源 层叠结构数据源的应用
    asp.net读取服务器端文件夹列表
    Treeview绑定数据源 层叠结构数据源的应用(续--完善篇)
    VC数据类型
    jQuery核心文档(翻译中)
    iscroll 下拉刷新,上拉加载
  • 原文地址:https://www.cnblogs.com/wj204/p/3044307.html
Copyright © 2011-2022 走看看