C算法相关整理

Posted 黑胡子大叔的小屋

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C算法相关整理相关的知识,希望对你有一定的参考价值。

算法

单链表相关算法

求交集并集

//求并集
void Union(NODE l1,NODE l2)
    /**
     * 实现思路1:
     * 1、将结果链表置空
     * 2、将l1节点插入结果链表
     * 3、遍历l2所有节点,有则跳过,无则插入
     * 
     * 实现思路2:
     * 1、p1指向l1第一个节点,p2指向l2第一个节点
     * 2、比较p1和p2值,小的插入结果链表,并指针后移,直到p1或p2为空
     * 3、之后再将p1\\p2不为空的那个插入
    */

    //这里是思路2的实现
    NODE p1,p2,p3;

    p1 = l1->next;
    p2 = l2->next;
    p3 = l1;

    while(p1 != NULL && p2 != NULL)

        if(p1->value <= p2->value)
            p3->next = p1;
            p3 = p1;
            p1 = p1->next;
         else 
            p3->next = p2;
            p3 = p2;
            p2 = p2->next;
        

    

    p3->next = p2 ? p2 : p1;



//求交集
void Intersection(NODE l1,NODE l2)
    /**
     * 实现思路:
     * 同求并集思路差不多,就是相等时加入一个节点,不等时后移
    */
    NODE p1,p2,p3;
    NODE q;

    p1 = l1->next;
    p2 = l2->next;
    p3 = l1;
    p3->next = NULL;

    while(p1 != NULL && p2 != NULL)

        if(p1->value < p2->value)
            p1 = p1->next;
         else if (p1->value > p2->value) 
            p2 = p2->next;
         else 
            q = p2->next;
            p2->next = p3->next;
            p3->next = p2;
            p3 = p2;
            p2 = q;
        

    

以上是关于C算法相关整理的主要内容,如果未能解决你的问题,请参考以下文章

C算法相关整理

深度解析数据结构与算法系列目录

面试&面试

算法相关的资料整理

算法工程师必备精选文章50篇

算法工程师必备精选文章50篇