zoukankan      html  css  js  c++  java
  • 初学数据结构六

      1 Status ListMerge_L(LinkList &A, LinkList &B, LinkList &C)
      2 {
      3     LinkList pa, pb, qa, qb;
      4     pa = A->next;
      5     pb = B->next;
      6     C = A;
      7     while (pa && pb)
      8     {
      9         qa = pa;
     10         qb = pb;
     11         pa = pa->next;
     12         pb = pb->next;
     13         qb->next = qa->next;
     14         qa->next = qb;
     15     }
     16     if (!pa)
     17         qb->next = pb;
     18     pb = B;
     19     free(pb);
     20     return OK;
     21 }
     22 
     23 Status ListMergeOppose_L(LinkLsit &A.LinkList &B, LinkList &C)
     24 {
     25     LinkList pa, pb, qa, qb;
     26     pa = A;
     27     pb = B;
     28     qa = pa;
     29     qb = pb;
     30     pa = pa->next;
     31     pb = pb->next;
     32     A->next = NULL;
     33     C = A;
     34     while (pa && pb)
     35     {
     36         if (pa->data < pb->data)
     37         {
     38             qa = pa;
     39             pa = pa->next;
     40             qa->next = A->next;
     41             A->next = qa;
     42         }
     43         else
     44         {
     45             qb = pb;
     46             pb = pb->next;
     47             qb->next = A->next;
     48             A->next = qb;
     49         }
     50     }
     51     while (pa)
     52     {
     53         qa = pa;
     54         pa = pa->next;
     55         qa->next = A->next;
     56         A->next = qa;
     57     }
     58     while (pb)
     59     {
     60         qb = pb;
     61         pb = pb->next;
     62         qb->next = A->next;
     63         A->next = qb;
     64     }
     65     pb = B;
     66     free(pb);
     67     return OK;
     68 }
     69 
     70 Status ListCross_Sq(SqList&A, SqList &B, SqList &C)
     71 {
     72     int i == , j = 0, k = 0;
     73     while (i < A.length && j < B.length)
     74     {
     75         if (A.elem[i] < B.elem[j])
     76             i++;
     77         else
     78             if (A.elem[i] > B.elem[j])
     79                 j++;
     80             else
     81             {
     82                 ListInsert_Sq(C, k, A.elem[i]);
     83                 i++;
     84                 k++;
     85             }
     86     }
     87     return OK;
     88 }
     89 
     90 Status ListCross_L(LinkList &A, LinkList &B, LinkList &C)
     91 {
     92     LinkList pa, pb, qa, qb, pt;
     93     pa = A;
     94     pb = B;
     95     qa = pa;
     96     qb = pa;
     97     pa = pa->next;
     98     pb = pb->next;
     99     C = A;
    100     while (pa && pb)
    101     {
    102         if (pa->data < pb->data)
    103         {
    104             pt = pa;
    105             pa = pa->next;
    106             qa->next = pa;
    107             free(pt);
    108         }
    109         else
    110             if (pa->data > pb->data)
    111             {
    112                 pt = pb;
    113                 pb = pb->next;
    114                 qb->next = pb;
    115                 free(pt);
    116             }
    117             else
    118             {
    119                 qa = pa;
    120                 pa = pa->next;
    121             }
    122     }
    123     while (pa)
    124     {
    125         pt = pa;
    126         pa = pa->next;
    127         qa->next = pa;
    128         free(pt);
    129     }
    130     while (pb)
    131     {
    132         pt = pb;
    133         pb = pb->next;
    134         qb->next = qb;
    135         free(pt);
    136     }
    137     pb = B;
    138     free(pb);
    139     return OK;
    140 }
    141 
    142 
    143 Status ListDivideInto2CL(LinkedPoly &L, LinkedPoly &L1)
    144 {
    145     LinkedPoly p, p1, q, pt;
    146     q = L;
    147     p = L->next;
    148     p1 = L1;
    149     while (p != L)
    150     {
    151         if(p->data.exp % 2 == 0)//.exp字段
    152         {
    153             pt = p;
    154             p = p->next;
    155             q->next = p;
    156             pt->next = p1->next;
    157             p1->next = pt;
    158             p1 = p1->next;
    159         }
    160         else
    161         {
    162             q = p;
    163             p = p->next;
    164             }
    165     }
    166     return oK;
    167 }
      1 typedef struct
      2 {
      3     int coef;
      4     int exp;
      5 }PolyTerm;
      6 
      7 typedef struct
      8 {
      9     PolyTerm *data;
     10     int last;
     11 }SqPoly;
     12 
     13 Status PolyInit(SqPoly &L)
     14 {
     15     int i;
     16     PolyTerm *p;
     17     cout << "请输入多项式的项数:";
     18     cin >> L.last;
     19     L.data = (PolyTerm*) malloc(L.last*sizeof(PolyTerm));
     20     if (!L.data)
     21         return ERROR;
     22     p = L.data;
     23     for (i = 0; i < L.last; i++)
     24     {
     25         cout << "请输入系数:";
     26         cin >> p->coef;
     27         cout << "请输入指数:";
     28         cin >> p->exp;
     29         p++;
     30     }
     31     return OK;
     32 }
     33 
     34 double PolySum(SqPoly &L, double x0)
     35 {
     36     double Pn, x;
     37     int i, j;
     38     PolyTerm *p;
     39     p = L.data;
     40     for (i = 0, Pn = 0; i < L.last; i++, p++){
     41         for (j = 0, x = 1; j < p->exp; j++)
     42             x = x*x0;
     43         Pn = Pn + p->coef*x;
     44     }
     45     return Pn;
     46 }
     47 
     48 Status PolyMinus(SqPoly &L, SqPoly &L1, SqPoly &L2)
     49 {
     50     PolyTerm *p, *p1, *p2;
     51     p = L.data;
     52     p1 = L1.data;
     53     p2 = L2.data;
     54     int i = 0, j = 0, k = 0;
     55     while (i < L1.last && j < L2.last)
     56     {
     57         if (p1->exp < p1->exp)
     58         {
     59             p->coef = p1->coef;
     60             p++; k++;
     61             p1++; i++;
     62         }
     63         else
     64             if (p1->exp > p2->exp)
     65             {
     66                 p->coef = p2->coef;
     67                 p->exp = p2->exp;
     68                 p++; k++;
     69                 p2++; j++;
     70             }
     71             else
     72             {
     73                 if (p1->coef != p2->coef)
     74                 {
     75                     p->coef = (p1->coef) - (p2->coef);
     76                     p->exp = p1->exp;
     77                     p++; k++;
     78                 }
     79                 p1++; p2++;
     80                 i++; j++;
     81             }
     82     }
     83     if (i<L1.last)
     84         while (i < L1.last)
     85         {
     86             p->coef = p1->coef;
     87             p->exp = p1->exp;
     88             p++; k++;
     89             p1++; i++;
     90         }
     91         if (j<L2.last)
     92             while (j < L2.last)
     93             {
     94                 p - coef = p2->coef;
     95                 p->exp = p2->exp;
     96                 p++; k++;
     97                 p2++; j++;
     98             }
     99             L.last = k;
    100             return OK;
    101 }
  • 相关阅读:
    Eclipse配置Maven私服
    ubuntu下使用Nexus搭建Maven私服
    Ubuntu系统的Redis安装配置
    centos7.6安装dpdk-stable-19.11.10
    微软的分布式应用框架 Dapr Helloworld
    Caddy源码阅读(二)启动流程与 Event 事件通知
    Caddy源码阅读(一)Run详解
    Caddy 源码全解析
    假装前端工程师(一)Icework + GitHub pages 快速构建可自定义迭代开发的 react 网站
    caddy & grpc(3) 为 caddy 添加一个 反向代理插件
  • 原文地址:https://www.cnblogs.com/Zblogs/p/3355788.html
Copyright © 2011-2022 走看看