zoukankan      html  css  js  c++  java
  • LinkedList_1.打印两个有序链表的公共部分

    思路:
    实例化出两个链表($link_a, $link_b),比较连个链表当前元素的大小,谁小谁执行next()方法继续比较,当出现相当的时候把相等的值塞入数组$common里,当两个链表有一个元素比较完了,全部结束。

    <?php
    
    $link_a = new SplDoublyLinkedList();
    $link_b = new SplDoublyLinkedList();
    
    push_value($link_a, [1, 7, 8, 14]);
    push_value($link_b, [2, 3, 7, 9, 14, 26]);
    
    $link_a->rewind();
    $link_b->rewind();
    $common = array();
    while ($link_a->current() != null && $link_b->current() != null) {
        $link_a_current = $link_a->current();
        $link_b_current = $link_b->current();
        if ($link_a_current > $link_b_current) {
            $link_b->next();
        } else if ($link_b_current > $link_a_current) {
            $link_a->next();
        } else {
            $link_a->next();
            $link_b->next();
            array_push($common, $link_a_current);
        }
    }
    
    function push_value($link, array $value_array)
    {
        foreach ($value_array as $key => $value) {
            $link->push($value);
        }
    }
    
    var_dump($common);
  • 相关阅读:
    SOHO路由器
    SYN Flood
    Java线程池
    BIO
    Java虚拟机的基本结构
    Linux 的Ext2
    java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
    cassandra-CQL
    数列分段`Section II`(二分
    Exams(二分
  • 原文地址:https://www.cnblogs.com/wangweiwen/p/6363532.html
Copyright © 2011-2022 走看看