数据结构_线性表的应用_线性表的连接的java实现

这篇文章讲述的是数据结构部分的内容的java实现,如有错误或者不当之处,还望各位大神批评指正。

问题描述

试写一个算法将连个链表连接在一起

算法分析

  • 该算法是链表的基本操作,假设有两个表L1和L2,只需将L1的表尾和L2的表头连接起来即可

  • 时间复杂度O(n),空间复杂度O(1)

代码实现

注:单链表的实现请移步https://blog.csdn.net/u013634252/article/details/81230093这里不再赘述。

/**
     * @explain Append方法: 将表L2接到表的后边
     * @param L2 表L2
     * @return List
     * @throws 
     * @author 叶清逸
     * @date 2018年7月27日 上午11:02:22
     */
    public LinkList append (LinkList L2){
        /*两个指针分别指向L1和L2的头指针*/
        Element p = head ;
        Element q = L2.head ;
        /*获取表L1的最后一个元素*/
        for(int i=0 ; i<LENGTH ; i++){
            p = p.next ;
        }
        /*连接操作*/
        p.next = q.next ;
        /*返回连接好的L1*/
        return this ;
    }
  • 例子
/*初始化L1和L2并放入数据*/
        LinkList L1 = new LinkList() ;
        L1.init();
        L1.put(3);
        L1.put(5);
        L1.put(8);
        L1.put(11);

        LinkList L2 = new LinkList() ;
        L2.init();
        L2.put(2);
        L2.put(6);
        L2.put(8);
        L2.put(9);
        L2.put(11);
        L2.put(15);
        L2.put(20);

        System.out.print("L1:");
        L1.print();
        System.out.print("L2:");
        L2.print();

        System.out.println(L1.append(L2));
    }
}

样例输出

L1:3 5 8 11 
L2:2 6 8 9 11 15 20 
LinkList:[3,5,8,11,2,6,8,9,11,15,20]

猜你喜欢

转载自blog.csdn.net/u013634252/article/details/81234445