Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class DoublyLinkedList {
- private DLLElement head;
- private DLLElement tail;
- private DLLElement actual;
- public DoublyLinkedList() {
- }
- public void insertFirst(Object o) {
- DLLElement newFirstElem = new DLLElement();
- newFirstElem.setObject(o);
- if (head == null) {
- head = newFirstElem;
- } else {
- newFirstElem.setNext(head);
- head.setPrevious(newFirstElem);
- head = newFirstElem;
- }
- }
- public void insertLast(Object o) {
- if (head == null) {
- this.insertFirst(o);
- return;
- }
- DLLElement current = head;
- while (current.getNext() != null) {
- current = current.getNext();
- }
- DLLElement newFirstElem = new DLLElement();
- newFirstElem.setObject(o);
- // = last item of list
- current.setNext(newFirstElem);
- newFirstElem.setPrevious(current);
- }
- public void remove(Object o) {
- DLLElement current = head;
- while (current != null) {
- if (current.getObject().equals(o)) {
- if (current.getPrevious() != null) {
- current.getPrevious().setNext(current.getNext());
- } else {
- head = current;
- }
- if (current.getNext() != null) {
- current.getNext().setPrevious(current.getPrevious());
- }
- return;
- }
- current = current.getNext();
- }
- }
- public String toString() {
- String res = "[";
- DLLElement current = head;
- while (current != null) {
- res += current.getObject().toString() + ",";
- current = current.getNext();
- }
- return res.substring(0, res.length() - 1) + "]";
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement