zoukankan      html  css  js  c++  java
  • 线性表处理

    问题描述:

    两个递增有序排列的线性表A和B,均以单链表做存储结构,编写算法,将两个表归并成一个递减有序的线性表C,要求C利用A, B表的结点空间

    问题分析:

    首先如果C表也是一个递增有序的,是不是简单些呢?当然,如果C是递增有序的,只要遍历两个表的中值,比较他们的大小,小的在大的前面,遍历完了以后,C表也就合并成了

    在这里它要求C表是递减有序的,哪问题的关键是不是把递增变成递减呢?又要怎么去变呢?

    想起昨天看过的算法,将首元节点变成尾元节点。说实话,暂时还是没想到好法子去变。。。经验少了,看的算法少了,看了下书,知道怎么弄了,把自己理解的重新理清楚下。

    C表是利用A,B表的节点空间的,可以让A->next=null,或者B->next=null后,赋值给C;A,B 两个表原来是递增的,对不,也就是说,遍历的时候最先出来的是最小的,再在C前面依次添加最小的数据,这样就能实现逆置了。(这样的实现方式让我对链表有了进一步理解)

    解题算法如下:

     1  Status ListMergeOppose_L(LinkList &A,LinkList &B,LinkList &C)
     2     {
     3          LinkList pa,pb,qa,qb;
     4          pa=A;
     5          pb=B;
     6          qa=pa;
     7          qb=pb;
     8          pa=pa->next;
     9          pb=pb->next;
    10          B->next=NULL;
    11          C=B;
    12     while(pa&&pb)
    13        {
    14         if(pa->data>pb->data)
    15          {
    16             qa=pa;
    17             pa=pa->next;
    18             qa->next=B->next;
    19             B->next=qa;
    20          }
    21         else
    22         {
    23               qb=pb;
    24               pb=pb->next;
    25               qb->next=B->next;
    26               B->next=qb;
    27         }
    28        }
    29    while(pa)
    30    {
    31      qa=pa;
    32      pa=pa->next;
    33      qa->next=B->next;
    34      B->next=qa;
    35    }
    36   while(pb)
    37    {
    38      qb=pb;
    39      pb=pb->next;
    40      qb->next=B->next;
    41      B->next=qb;
    42     }
    43    pa=A;
    44    free(pa);
    45    return OK;
    46  }

    最后说下这个编辑环境真好,把代码贴上去看得清晰明了。。

     本来想删除以前写的,重新把实现的代码放上去,但是算了吧,毕竟无论以前有多么无知,这也是个过程。

    有些地方欠缺思考。。

  • 相关阅读:
    Java内存模型
    如何使用原生的Ribbon
    家穷应该读大学吗?| 寒门学子的奋斗史(一)
    试用期没过,因在公司上了1024网站。。。
    两个"�"="锟斤拷"?
    Java字符类Character字符串类String和StringBuffer
    Python抽象基类的定义与使用
    Java数字类Number和Math
    ESP8266 NodeMCU手把手入门(实操篇)——读取传感器的值
    不下软件,照样可以完美正确格式化树莓派SD卡!(恢复U盘/SD卡到满容量)
  • 原文地址:https://www.cnblogs.com/wj204/p/3034986.html
Copyright © 2011-2022 走看看