List Head

You might also like

Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 3

public class ListHead {

private ListNode first;


private ListNode last;
private int count;

public ListHead() {
count = 0;
first = null;
last = null;
}

public int getCount() {


return count;
}

public void insert(int item) {

if(first == null && last == null) {


ListNode newNode = new ListNode(item);
first = newNode;
last = newNode;
}
else {
last.insertAfter(item);
last = last.getNode(1);
}

count++;
}

public void insertAtPosition(int index,int item) {

if(index<0) {
return;
}
else if(index == 0) {

if(first == null) {
insert(item);
}
else {
first.insertBefore(item);
count++;
first = first.prev;
}
}
else {

ListNode tempNode = first.getNode(index-1);

if(tempNode == null) {
insert(item);
}
else {

tempNode.insertAfter(item);
count++;

if(tempNode == last) {
last = tempNode.next;
}

public ListNode get(int index) {

if(first== null) {
return null;
}

return first.getNode(index);

public boolean contains(int item) {

if(first == null) {
return false;
}

ListNode tempNode = first;

do {

if(tempNode.item == item) {
return true;
}

tempNode = tempNode.next;

}while(tempNode!=null);

return false;
}

public int search(int item) {

int index = -1;

if(first == null) {
return index;
}

ListNode tempNode = first;

do {
index++;

if(tempNode.item == item) {
return index;
}

tempNode = tempNode.next;
}while(tempNode!=null);

index = -1;

return index;

public void deleteAtPosition(int index) {

if(first == null && index<0 && index>=count) {


return;
}

ListNode deleteNode = first.getNode(index);

if(deleteNode.prev!=null) {
ListNode prevNode = deleteNode.prev;
prevNode.next = deleteNode.next;
}

if(deleteNode.next !=null) {
ListNode nextNode = deleteNode.next;
nextNode.prev = deleteNode.prev;
}

count--;

if(deleteNode == first) {
first = deleteNode.next;
}
else if (deleteNode == last) {
last = deleteNode.prev;
}

deleteNode.prev = null;
deleteNode.next = null;

@Override
public String toString() {

if(first!=null) {
return first.getListNodeString();
}

return "---";
}

You might also like