数据结构-双向链表

插入顺序:

先搞定插入元素的前驱和后继;在搞定后结点的前驱,最后解决前结点的后继
双向链表相对于单链表多了一个 prior指针, 也可以说时空间换时间;

package com.tuln.datastract;

/**
* @Created with IntelliJ IDEA
* @Description:
* @Package: com.tuln.datastract
* @author: FLy-Fly-Zhang
* @Date: 2018/12/2
* @Time: 20:13
*/
class Dlink{
    class Entry2{
        private Entry2 prev;
        private Entry2 next;
        private int data;
        public Entry2(){

                this.data = -1;
                this.next = null;
                this.prev = null;
        }
        public Entry2(int val) {
                this.data = val;
                this.next = null;
                this.prev = null;
            }
        }
        private Entry2 head;
        public Dlink(){
            this.head = new Entry2();
        }
        //头插法
        public void insert(int val) {
            Entry2 entry2 = new Entry2(val);
            entry2.next = this.head.next;
            entry2.prev = this.head;
            this.head.next = entry2;
            if(entry2.next != null) {
                entry2.next.prev = entry2;
            }
        }
        //尾插法
        public void insertTail(int val) {
              Entry2 cur=this.head;
              while(cur.next!=null){
                  cur=cur.next;
              }
              Entry2 entry2=new Entry2(val);
              cur.next=entry2;
              entry2.prev=cur;
        }
         //删除所有值为val的节点
         public void deleteAll(int val) {
             Entry2 cur=this.head.next;
             while(cur!=null){
                 if(cur.data==val){
                     cur.prev.next=cur.next;
                     if(cur.next!=null){ //最后一次删除
                         cur.next.prev=cur.next;
                     }
                 }
                 cur=cur.next;
             }
         }



}

public class TestDlinkDemo {
}
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值