栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【Java实现链表的增删改查】(java链表删除)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【Java实现链表的增删改查】(java链表删除)

数据结构之链表

1.数据的增加分为头插和尾插和中间插入:
头插:令每一个进来的新节点的next为指向头,然后改头为新节点
尾插:令Current+1的节点为新节点
中间插入:找到你想插入的位置的前一个节点,让这个新结点的next->前一个节点的后一个节点,再让前一个节点指向新节点

  public void add(int data,int index) {
        if (head == null) {
            head = new Node(data, null);
        } else {
            if (index == 0) {
                Node node = new Node(data, head);
                head = node;
            } else {
                Node node = head;
                for (int i = 0; i < index-1; i++) {
                    node = node.getNext();
                }
                Node node1 = new Node(data,node.getNext());
                node.setNext(node1);
            }
        }
        CuurentIndex++;
    }

2.数据的删除实现:
先找到你想找的那个节点的前一个结点让(get(next))->next->next

  public int delete(int index){
       if (index==0){
          head=head.getNext();
       }else {
           Node node = head;
           for (int i = 0; i < index - 1; i++) {
               node = node.getNext();
           }
           node.setNext(node.getNext().getNext());
       }
        CuurentIndex--;
        return index;
    }

3.数据的修改实现:
先找到你想找的那个节点直接set Data(data)

  public  void updata(int index,int data){
        Node node=head;
        for (int i = 0; i  

4.数据的查询实现:
直接根据下标寻找返回data

  public  Integer select(int index){
        Node node=head;
        for (int i = 0; i  

5.打印所有链表:
根据预设的CurrentIndex进行循环查找打印

  public String linkToString(){
        String result="[";
        for (int i = 0; i  

工具代码

package Fengzhuang.lianbiao;
public class Superlink {

    
    private Node head;
    private int CuurentIndex=-1;
    //链表对于数据的增加
   public void addToHead(int data){
       this.add(data,0);
   }
    public void addToTail(int data){
       this.add(data,CuurentIndex+1);
    }
    //链表对于数据的插入
    public void add(int data,int index) {
        if (head == null) {
            head = new Node(data, null);
        } else {
            if (index == 0) {
                Node node = new Node(data, head);
                head = node;
            } else {
                Node node = head;
                for (int i = 0; i < index-1; i++) {
                    node = node.getNext();
                }
                Node node1 = new Node(data,node.getNext());
                node.setNext(node1);
            }
        }
        CuurentIndex++;
    }
    //链表对于数据的删除
    public int delete(int index){
       if (index==0){
          head=head.getNext();
       }else {
           Node node = head;
           for (int i = 0; i < index - 1; i++) {
               node = node.getNext();
           }
           node.setNext(node.getNext().getNext());
       }
        CuurentIndex--;
        return index;
    }
    //链表对于数据的修改
    public  void updata(int index,int data){
        Node node=head;
        for (int i = 0; i  

测试代码 头插和尾插的时间效率

    public static void main(String[] args) {
    Superlink superlink=new Superlink();//head:6毫秒  tail:8291毫秒
    long Start=System.currentTimeMillis();
        for (int i = 0; i <100000; i++) {
           superlink.addToHead(i);
        }
        long end=System.currentTimeMillis();
        System.out.println(end-Start);
    }
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/773343.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号