双向循环链表

package 双向循环链表;

public class DoubleNode {
        
    public static void main(String[] args) {
        //创建节点
        DoubleNode dn1=new DoubleNode(20);
        DoubleNode dn2=new DoubleNode(30);
        DoubleNode dn3=new DoubleNode(40);
        //构建双链表
        dn1.after(dn2);
        dn2.after(dn3);
        //检验dn2的前驱
        System.out.println("dn2的前驱"+dn2.pre.date);
        //检验dn2的后继
        System.out.println("dn2的后继"+dn2.next.date);
        //检验d1的后继
        System.out.println("d1的后继"+dn1.next.date);
        //d3的前驱
        System.out.println("d3的前驱"+dn3.pre.date);
        System.out.println(dn3.next.date);
    }  
    
    
    
    
    //上一个节点(如果只创建一个节点那么他的上一个节点和下一个节点都是他自己)
        DoubleNode pre=this;
        //下一个节点
        DoubleNode next=this;
        //记录节点的数据
        int date;
        
        public DoubleNode(int date)
        {
            this.date=date;
        }
        
        //如何增加节点(实际就是3个节点4条链)
        public void after(DoubleNode node) 
        {
             //原来的下一个节点作为下下一个节点
            DoubleNode nextNext=next;
            //把新节点作为当前节点的下一个节点
            this.next=node;
            //把当前节点作为新节点的前一个节点
            node.pre=this;
            //让原来的下一个节点作为新节点的下一个节点
            node.next=nextNext;
            //让原来的下一个节点的上一个节点为新节点
            nextNext.pre=node;
            
        }

        
        //下一个节点
        public DoubleNode next() 
        {
            return this.next;
        }
        
        //获取上一个节点
        public DoubleNode pre()
        {
            return this.pre;
            
        }
        //获取数据
        public int getDate() 
        {
            return this.date;
        }
    
}


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值