doubly linked list

  1. Schematic diagram of a doubly linked list:
    write picture description here
  2. Create node inner class
class Entry{
        int data;
        Entry next;
        Entry prio;

        public Entry(){
            this.data=-1;
            this.next=null;
            this.prio=null;
        }
        public Entry(int val){
            this.data=val;
            this.next=null;
            this.next=null;
        }
    }
  1. head plug
public Entry head=null;//创建头结点
    public DoubleLink(){
        this.head=new Entry();
    }
    //头插法
    public void insertHead(int val){
        Entry entry=new Entry(val);//得到了一个结点
        entry.next=head.next;
        entry.prio=this.head;
        this.head.next=entry;
        if(entry.next!=null){//会有空指针异常,这个我还不懂
           entry.next.prio=entry;
        }
    }

enter:

DoubleLink t1=new DoubleLink();
        t1.insertHead(10);
        t1.insertHead(10);
        t1.insertHead(10);
        t1.show();

Output:
write picture description here
View Analysis:
write picture description here
4. Tail interpolation

public void insertTail(int val){
        Entry cur=this.head;
        while(cur.next!=null){
            cur=cur.next;
        }
        Entry entry=new Entry(val);
        cur.next=entry;
        entry.prio=cur.next.prio;
    }

enter:

DoubleLink t1=new DoubleLink();
        t1.insertTail(6);
        t1.insertTail(66);
        t1.insertTail(666);
        t1.show();

output:
write picture description here

View analysis:
write picture description here
5. Delete all nodes whose value is val

public void deleteEntry(int val){
        Entry cur=this.head.next;
        while(cur!=null){
            if(cur.data==val){
                cur.prio.next=cur.next;
                if(cur.next!=null){//删除最后一个结点的时候
                    cur.next.prio=cur.prio;
            }
            }
            cur=cur.next;
        }
    }

enter:

DoubleLink t1=new DoubleLink();
        t1.insertTail(6);
        t1.insertTail(66);
        t1.insertTail(666);
        t1.show();
        t1.deleteEntry(66);
        t1.show();

output:

View Analysis:
write picture description here

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=326482203&siteId=291194637