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

单列表的JAVA 实现

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

单列表的JAVA 实现

创建SlinkList并继承ILinarList

public class SlinkList implements ILinarList {
    private Node start;
    int size;
    private static class Node{
        E item;
        Nodenext;
        Node(E item,Nodenext){
            this.item=item;
            this.next=next;
        }
    }

    public  SlinkList(){
        start=null;
    }
    @Override
    public boolean add(E item) {
        if (start == null){
              start = new Node(item,null);
        }else {
            Nodecurrent=start;
            while (current.next !=null){
                current= current.next;
            }
            current.next=new Node(item,null);
        }
        size++;
        return true;
    }

    @Override
    public boolean add(int i, E item) {
        Node current;
        Node previous;
        if (i < 0 || i > size) {
            return false;
        }
        Node newonde = new Node(item, null);
        if (i == 0) {
            newonde.next = start;
            start = newonde;
            size++;
        } else {
            current = start;
            previous = null;
            int j = 0;
            while (current != null && j < i) {
                previous = current;
                current = current.next;
                j++;
            }
            if (j == i) {
                previous.next = newonde;
                newonde.next = current;
                size++;
            }
        }
        return true;
    }
    @Override
    public E remove(int i) {
        E oldValue=null;
        if(isEmpty() || i<0 ||i>size-1){
            oldValue=null;
        }
        Nodecurrent=start;
        if (i==0){
            oldValue=current.item;
            start=current.next;
            size--;
        }else {
            Nodeprevious=null;
            int j=1;
            while (current.next !=null && j<=i){
                previous=current;
                current=current.next;
                j++;
            }
            previous.next=current.next;
            oldValue=current.item;
            current=null;
            size--;
        }
        return oldValue;
    }

    @Override
    public int indexOf(E item) {
        int i=0;
        if(item == null){
            for(Nodecurrent=start;current !=null;current=current.next){
                if(current.item== null)
                    return i;
                i++;
            }
        }else {
            for(Nodecurrent= start;current !=null;current=current.next){
                if(item.equals(current.item))
                    return i;
                i++;
            }
        }
        return -1;
    }

    @Override
    public E get(int i) {
        E item =null;
        if(isEmpty() || i<0|| i>size-1){
            item=null;
        }
        Nodecurrent=start;
        int j=0;
        while (current.next !=null && jcurrent=start;current !=null;){
            Nodenext=current.next;
            current.item=null;
            current.next=null;
            current=next;
        }
        start=null;
        size=0;
    }

    @Override
    public boolean isEmpty() {
        return size==0;
    }
}

测试单列表:

将测试顺序的代码: ILinarListlist=new SeqList(Integer.class,50);

替换为: ILinarListlist=new SlinkList();

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/592174.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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