zoukankan      html  css  js  c++  java
  • 链表归并

    
    void mergearray(int a[ ], int m, int b[ ], int n, int c[ ])
    {
        int i = 0, j = 0;
        int k = 0;
        while(i < m && j < n)
        {
            if(a[i] < b[j])
                c[k++] = a[i++];      //c[k] = a[i;]; k++; i++;
            else
                c[k++] = b[j++]
        }
        while(i < m)
            c[k++] = a[i++];
        while(j < n)
            c[k++] = b[j++];
    }
    
    

    使用链表方法

    
    void merge(LNode *A, LNode *B, LNode *&C)      // *&C是新链表
    {
        //待对比的指针 *p, *q
        LNode *p = A->next;
        LNode *q = B->next;
        LNode *r;      //新链表尾指针
        //只要其中一个头节点,然后将另外的释放
        C = A;
        C->next = NULL;
        free (B);
        r = C;
        while(p != NULL && q != NULL)
        {
            if(p->data <= q->data)
            {
                r->next = p; p = p->next;
                r = r->next;      // r指向新结点尾部
            }
            else
            {
                r->next = q; q = q->next;
                r = r->next;
            }
        }
        if(p != NULL) 
            r->next = p;
        if(q != NULL)
            r->next = q;
    }
    
    
  • 相关阅读:
    C语言第三天,《常量指针和指针常量》
    树莓派系统烧入总结
    c 语言第一天
    7. Vue
    6. Vue
    5. Vue
    4. Vue
    3. Vue
    1. Vue
    2. Vue
  • 原文地址:https://www.cnblogs.com/dsbz/p/14438050.html
Copyright © 2011-2022 走看看