• 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html
  • 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html

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

极客笔记 Geekerstar 12个月前 (05-12) 293次浏览 已收录 0个评论 扫描二维码
文章目录[隐藏]

获得链表的第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<Integer> 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);
    }
}

运行程序,分析结果

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

源码下载

下载地址

导航目录

查看导航
丨极客文库, 版权所有丨如未注明 , 均为原创丨
本网站采用知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议进行授权
转载请注明原文链接:数据结构笔记总结(3.4)链表的遍历,查询和修改
喜欢 (0)
[247507792@qq.com]
分享 (0)
Geekerstar
关于作者:
本站技术支持

您必须 登录 才能发表评论!

  • 精品技术教程
  • 编程资源分享
  • 问答交流社区
  • 极客文库知识库

客服QQ


QQ:2248886839


工作时间:09:00-23:00