user472221
user472221

Reputation: 3114

doubly-linked list

Hi I want to know that how can I copy my objects from an arrayList to a doubly linked list? also my DNode constructor is :

    public DNode(Object element, DNode prev, DNode next) {
    this.element = element;
    this.next = next;
    this.prev = prev;
}

i.e. when I write such a code my program doesn't work :

  DNode node = new DNode(pointList.get(0),null, null);

        for (int i = 1; i < pointList.size(); i++) {
        DNode dNode = new DNode(pointList.get(i), node, null);
        dList.addLast(dNode);
        }

also i have written doubly linked list which has addAfter and addBefore methods and also much more.

Upvotes: 1

Views: 3461

Answers (2)

Greg
Greg

Reputation: 21899

Assuming the element at the end of the linked list has a 'next' property of 0:

ArrayList arrayList = new ArrayList();
int next = currentElement.next;
while(next != 0) {
    arrayList.add(currentElement);
    next = currentElement.next;
}

You can also use java.util.LinkedList as that is an in-built representation of a doubly-linked list. Using this type means you can pass the linked list into the constructor of an ArrayList

Upvotes: 0

Bozho
Bozho

Reputation: 597224

java.util.LinkedList is a doubly-linked list.

All of the operations perform as could be expected for a doubly-linked list.

You can create it by passing the array list as constructor argument:

List linkedList = new LinkedList(arrayList);

Update: The java.util.LinkedList has add(index, element) which, combined with indexOf(..) should cover the addBefore and addAfter methods. You can extend LinkedList to add these convenient methods if you like.

Upvotes: 9

Related Questions