diff --git a/Semester 3/Assignments/LinkedList/src/linkedlist/EmptyListException.java b/Semester 3/Assignments/LinkedList/src/linkedlist/EmptyListException.java new file mode 100644 index 0000000..6fffed7 --- /dev/null +++ b/Semester 3/Assignments/LinkedList/src/linkedlist/EmptyListException.java @@ -0,0 +1,16 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template + */ +package linkedlist; + +/** + * + * @author caleb + */ +public class EmptyListException extends RuntimeException{ + public EmptyListException() {} + public EmptyListException(String msg) { + super(msg); + } +} diff --git a/Semester 3/Assignments/LinkedList/src/linkedlist/MyList.java b/Semester 3/Assignments/LinkedList/src/linkedlist/MyList.java index f181a7e..238ab3d 100644 --- a/Semester 3/Assignments/LinkedList/src/linkedlist/MyList.java +++ b/Semester 3/Assignments/LinkedList/src/linkedlist/MyList.java @@ -103,10 +103,13 @@ public class MyList { } public E removeAt(int index) { + if (size() == 0) { + throw new EmptyListException("The list is empty."); + } if (index < 0 || index >= size()) throw new IndexOutOfBoundsException(); if (size() == 0) - throw new RuntimeException("Empty List"); + throw new EmptyListException("Empty List"); E removedE = null; if (index == 0) { // remove the front diff --git a/Semester 3/Assignments/MP6_CalebFontenot/src/main/java/edu/slcc/asdv/caleb/mp6_calebfontenot/DoubleLinkedList.java b/Semester 3/Assignments/MP6_CalebFontenot/src/main/java/edu/slcc/asdv/caleb/mp6_calebfontenot/DoubleLinkedList.java index b3359c7..cf5fed7 100644 --- a/Semester 3/Assignments/MP6_CalebFontenot/src/main/java/edu/slcc/asdv/caleb/mp6_calebfontenot/DoubleLinkedList.java +++ b/Semester 3/Assignments/MP6_CalebFontenot/src/main/java/edu/slcc/asdv/caleb/mp6_calebfontenot/DoubleLinkedList.java @@ -18,6 +18,44 @@ public class DoubleLinkedList { Node right; } + public T removeAt(int pos) + { + if (pos < 0 || pos > size()-1) + { + throw new IndexOutOfBoundsException(); + } + + //list is empty + if ( size() == 0 ) + throw new EmptyListException( "The list empty."); + //remove at 0 + if ( pos == 0) + { + + if ( size() == 1) + head = tail = null; + else + head = head.right; + } + else if (pos== size() - 1) { //remove at end + tail = tail.left; + tail.right = null; + } + else { //remove in the middle + Node p = head; + for (int i = 0; i < pos; ++i) { + p = p.right; + p.left.right = p.right; + p.right.left = p.right; + p.right.left = p.left; + } + } + + + + return null; + } + public void addAt(T t, int pos) { if (pos < 0 || pos > size()) { throw new IndexOutOfBoundsException(); @@ -60,15 +98,17 @@ public class DoubleLinkedList { String outputString = "DoubleLinkedList{" + "head=" + head + ", tail=" + tail +", size=" + this.size() + "}\n Contents= ["; Node p = head; int count = 0; + int size = size(); + System.out.println(size); while (p != null) { outputString += p.t.toString(); - if (count -1 < size()) { + count++; + if (count < size) { outputString += ", "; } else { outputString += "]"; } p = p.right; - count++; } return outputString; } @@ -82,6 +122,8 @@ public class DoubleLinkedList { list.addAt(40, 0); list.addAt(40, 3); list.addAt(25, 3); + list.removeAt(3); + list.removeAt(1); System.out.println(list); } } diff --git a/Semester 3/Assignments/MP6_CalebFontenot/src/main/java/edu/slcc/asdv/caleb/mp6_calebfontenot/EmptyListException.java b/Semester 3/Assignments/MP6_CalebFontenot/src/main/java/edu/slcc/asdv/caleb/mp6_calebfontenot/EmptyListException.java new file mode 100644 index 0000000..a819fb2 --- /dev/null +++ b/Semester 3/Assignments/MP6_CalebFontenot/src/main/java/edu/slcc/asdv/caleb/mp6_calebfontenot/EmptyListException.java @@ -0,0 +1,16 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template + */ +package edu.slcc.asdv.caleb.mp6_calebfontenot; + +/** + * + * @author caleb + */ +public class EmptyListException extends RuntimeException{ + public EmptyListException() {} + public EmptyListException(String msg) { + super(msg); + } +}