数据结构笔记总结(3.4)链表的遍历,查询和修改

获得链表的第index(0-based)个位置的元素

public E get(int index){

    if(index < 0 || index >= size)
        throw new IllegalArgumentException("Get failed. Illegal index.");

    Node cur = dummyHead.next;
    for(int i = 0 ; i < index ; i ++)
        cur = cur.next;
    return cur.e;
}

获得链表的第一个元素

有了这个Get就可以写一些更方便的方法

public E getFirst(){
    return get(0);
}

获得链表的最后一个元素

public E getLast(){
    return get(size - 1);
}

更新方法

修改链表的第index(0-based)个位置的元素为e

public void set(int index, E e){
    if(index < 0 || index >= size)
        throw new IllegalArgumentException("Set failed. Illegal index.");

    Node cur = dummyHead.next;
    for(int i = 0 ; i < index ; i ++)
        cur = cur.next;
    cur.e = e;
}

查找方法

查找链表中是否有元素e

public boolean contains(E e){
    Node cur = dummyHead.next;
    while(cur != null){
        if(cur.e.equals(e))
            return true;
        cur = cur.next;
    }
    return false;
}

toString方法

@Override
public String toString(){
    StringBuilder res = new StringBuilder();

//     Node cur = dummyHead.next;
//     while(cur != null){
//         res.append(cur + "->");
//         cur = cur.next;
//     }
    for(Node cur = dummyHead.next ; cur != null ; cur = cur.next)
        res.append(cur + "->");
    res.append("NULL");

    return res.toString();
}

测试

完成以上方法后,我们就可以测试一下了

public class Main {

    public static void main(String[] args) {

        LinkedList linkedList = new LinkedList<>();
        for(int i = 0 ; i < 5 ; i ++){
            linkedList.addFirst(i);
            System.out.println(linkedList);
        }

        linkedList.add(2, 666);
        System.out.println(linkedList);
    }
}

运行程序,分析结果
数据结构笔记总结(3.4)链表的遍历,查询和修改

首先,每次从0~4分别添加到链表头的位置,然后将666这个元素插入到链表索引为2的位置。至此,增,改,查已经完成,接下来我们将完成删除操作。

源码下载

[dm href='https://www.jikewenku.com/product/1487.html']下载地址[/dm]

导航目录

[dm href='https://www.jikewenku.com/geeknote/2241.html']查看导航[/dm]

本站所有文章均来自互联网,如有侵权,请联系站长删除。极客文库 » 数据结构笔记总结(3.4)链表的遍历,查询和修改
分享到:
赞(0)

评论抢沙发

评论前必须登录!