Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package trak.datastructures;
- import trak.datastructures.*;
- /**
- * Linked list implementation
- * Data Structures and Algorithms T 2011
- * T-106.1220
- *
- * Author: Your name here
- */
- //IMPLEMENT THE METHODS
- //YOU MIGHT NEED OTHER METHODS TOO!
- public class TrakLinkedList {
- TrakListNode first;
- TrakListNode last;
- public TrakLinkedList(){
- this.first = null;
- this.last = null;
- }
- public void addFirst(Object item) {
- TrakListNode node = new TrakListNode(item);
- TrakListNode wanha = this.first;
- if(this.first == null && this.last == null){
- this.first = node;
- this.last = node;
- return;
- }
- this.first = node; //Laitetaan uusi firsti
- node.setPrevious(wanha); //UUden noden previous on vanha firsti
- wanha.setNext(node);
- }
- public void addLast(Object item) {
- TrakListNode node = new TrakListNode(item);
- TrakListNode wanha = this.last;
- if(this.first == null && this.last == null){
- this.first = node;
- this.last = node;
- return;
- }
- this.last = node;
- node.setNext(wanha);
- wanha.setPrevious(node);
- }
- public Object getFirst(){
- if(this.first == null)
- return null;
- else
- return this.first.getValue();
- }
- public Object getLast(){
- if(this.last == null)
- return null;
- else
- return this.last.getValue();
- }
- public void addPosition(int n, Object item) {
- TrakListNode node = new TrakListNode(item);
- TrakListNode next;
- TrakListNode previous;
- TrakListNode temp = this.last;
- TrakListNode temp2;
- int i = 1;
- if(n == 1 && this.first == null && this.last == null){
- this.last = node;
- this.first = node;
- return;
- }
- while(i < n){
- if(temp != null && temp.getNext() == null && n-i==1){
- temp.setNext(node);
- node.setPrevious(temp);
- this.first = node;
- return;
- }
- else if (temp == null){
- return;
- }
- temp2 = temp;
- temp = temp.getNext();
- i++;
- }
- next = temp;
- previous = temp.getPrevious();
- node.setNext(temp);
- next.setPrevious(node);
- previous.setNext(node);
- node.setPrevious(previous);
- }
- public void removePosition(int n) {
- TrakListNode next;
- TrakListNode previous;
- TrakListNode temp = this.last;
- int i = 1;
- while(i < n){ //Etsii poistettavan noden
- if(temp == null)
- return;
- temp = temp.getNext();
- i++;
- }
- if(temp == null)
- return;
- next = temp.getNext();
- previous = temp.getPrevious();
- if(previous != null)
- previous.setNext(next);
- if(next != null)
- next.setPrevious(previous);
- if(previous == null && next != null)
- this.last = next;
- if(next == null && previous != null)
- this.first = previous;
- if(next == null && previous == null){
- this.last = null;
- this.first = null;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement