自己写一个简单的链表

public class MyLinkedList {
    Node first;
    Node last;
    //计数器
    int count=0;
    //提供一个构造器
    public MyLinkedList(){
    }
    //添加元素的方法
    public void add(Object o){
        if(first==null){//证明添加的元素是第一个节点;
            //将添加的元素封装为一个Node对象
            Node n=new Node();
            n.setPre(null);
            n.setObj(o);
            n.setNext(null);
            //当前链中第一个节点变为n
            first=n;
            //当前链中最后一个节点变为n
            last=n;
        }else{//证明已经不是第一个节点了
            //将添加的元素封装成一个Node对象。
            Node n=new Node();
            n.setPre(last);//n的上一个节点一定是当前链中的最后一个节点Last
            n.setObj(o);
            n.setNext(null);
            //当前链中的最后一个节点的下一个元素 要指向n
            last.setNext(n);
            //将最后一个节点变为n
            last=n;
        }
        //链中元素数量加1
        count++;
    }

    //得到元素数量
    public int getSize(){
        return count;
    }

    //通过下标得到元素
    public Object get(int index){
        //获取链表的头元素
        Node n=first;
        for(int i=0;i<index;i++){
            n=n.getNext();
        }
        return n.getObj();
    }
}
class Test1{
    public static void main(String[] args) {
        //创建一个集合对象
        MyLinkedList ml=new MyLinkedList();
        ml.add("aa");
        ml.add("bb");
        ml.add("cc");
        System.out.println("元素数量为"+ml.getSize());
        System.out.println(ml.get(2));
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值