diff --git a/Semester 3/Assignments/MP2-chapter4_Java20_CalebFontenot/start.sh b/Semester 3/Assignments/MP2-chapter4_Java20_CalebFontenot/start.sh new file mode 100755 index 0000000..2faaa2e --- /dev/null +++ b/Semester 3/Assignments/MP2-chapter4_Java20_CalebFontenot/start.sh @@ -0,0 +1,2 @@ +#!/bin/bash +java --module-path /usr/lib --add-modules javafx.fxml,javafx.controls,javafx.media -XX:+UnlockExperimentalVMOptions -XX:+EagerJVMCI -XX:+EnableJVMCI -XX:+UseJVMCICompiler -XX:+UseJVMCINativeLibrary -Djava.awt.graphicsenv=net.java.openjdk.cacio.wayland.WaylandGraphicsEnvironment -jar dist/MP2-chapter4_Java20_CalebFontenot.jar diff --git a/Semester 3/Exams/Projects/GenericMergeSortExam.java.html b/Semester 3/Exams/Projects/GenericMergeSortExam.java.html new file mode 100644 index 0000000..1a746a5 --- /dev/null +++ b/Semester 3/Exams/Projects/GenericMergeSortExam.java.html @@ -0,0 +1,155 @@ + + + +GenericMergeSortExam.java + + + + +
C:\Users\ar114\Documents\NetBeansProjects\ProgramingExam2_CalebFontenot\src\main\java\com\mycompany\programingexam2_calebfontenot\GenericMergeSortExam.java
+
+/*
+ * 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 com.mycompany.programingexam2_calebfontenot;
+
+import java.lang.reflect.Array;
+import java.util.Comparator;
+
+/**
+ *
+ * @author ar114
+ */
+public class GenericMergeSortExam {
+
+    public static <E extends Comparable<E>> void mergeSort(E[] list) {
+        mergeSort(list,
+                new Comparator<E>() {
+            @Override
+            public int compare(E e1, E e2) {
+                int compareResult = ((Comparable<E>) e1).compareTo(e2);
+                return compareResult;
+            }
+        });
+    }
+
+    public static <E> void mergeSort(E[] list,
+            Comparator<? super E> comparator) {
+        if (list.length > 1) {
+            // Merge sort the first half
+            E[] firstHalf = (E[]) new Object[list.length / 2];
+            //copies 1st half of list into array firstHalf
+            System.arraycopy(list, 0, firstHalf, 0, list.length / 2);
+            mergeSort(firstHalf, comparator);
+            // Merge sort the second half
+            int secondHalfLength = list.length - list.length / 2;
+            E[] secondHalf = (E[]) new Object[secondHalfLength];
+            System.arraycopy(list, list.length / 2,
+                    secondHalf, 0, secondHalfLength);
+            mergeSort(secondHalf, comparator);
+            // Merge firstHalf with secondHalf
+            E[] temp = merge1(firstHalf, secondHalf, comparator);
+            System.arraycopy(temp, 0, list, 0, temp.length);
+        }
+    }
+
+    /**
+     * Merges the two lists using a Comparator.
+     *
+     * @param <E> The generic type the methods accepts.
+     * @param list1 a list of generic type E
+     * @param list2 a list of generic type E
+     * @param comparator Comparator
+     * @return a sorted new list made of the merged list1 and list2.
+     */
+    private static <E> E[]
+            merge1(E[] list1, E[] list2, Comparator<? super E> comparator) {
+        int returnArraySize = list1.length + list2.length;
+        E[] returnArray = (E[]) new Object[returnArraySize];
+        int list1Iterator = 0, list2Iterator = 0, returnArrayIterator = 0, iterationsRemaining = 0;
+        for (; returnArrayIterator < returnArraySize; ++returnArrayIterator) {
+            iterationsRemaining = (returnArraySize - returnArrayIterator);
+            if (comparator.compare(list1[list1Iterator], list2[list2Iterator]) <= 0) {
+                returnArray[returnArrayIterator] = list1[list1Iterator];
+                if (iterationsRemaining > 1)
+                    returnArray[returnArrayIterator + 1] = list2[list2Iterator];
+                if ((list1.length - 1) < (list1Iterator)) {
+                    ++list1Iterator;
+                } else {
+                    ++list2Iterator;
+                }
+                ++returnArrayIterator;
+            } else {
+                returnArray[returnArrayIterator] = list2[list2Iterator];
+                if (iterationsRemaining > 1)
+                    returnArray[returnArrayIterator + 1] = list1[list1Iterator];
+                if ((list2.length - 1) < (list2Iterator)) {
+                    ++list2Iterator;
+                } else {
+                    ++list1Iterator;
+                }
+                ++returnArrayIterator;
+
+            }
+            /*
+            if (comparator.compare(list1[list1Iterator], list2[list2Iterator]) == 1) {
+                returnArray[returnArrayIterator] = list2[list2Iterator];
+                ++list2Iterator;
+                ++returnArrayIterator;
+            } else {
+                returnArray[returnArrayIterator] = list1[list1Iterator];
+                ++list1Iterator;
+                ++returnArrayIterator;
+
+            }
+            */
+        }
+        return returnArray;
+    }
+
+    public static void main(String[] args) {
+        Integer[] list
+                = {
+                    2, 3, 2, 5, 6, 1, -2, 3, 14, 12
+                };
+        mergeSort(list);
+        for (int i = 0; i < list.length; i++) {
+            System.out.print(list[i] + " ");
+        }
+        System.out.println();
+        String[] list1
+                = {
+                    "ABC", "abc", "abm", "Anf", "Good", "Bad", "nice"
+                };
+        mergeSort(list1, new Comparator<String>() {
+            @Override
+            public int compare(String s1, String s2) {
+                return s1.compareToIgnoreCase(s2);
+            }
+        });
+        for (int i = 0; i < list1.length; i++) {
+            System.out.print(list1[i] + " ");
+        }
+        System.out.println("");
+    }
+}
+
+
+ diff --git a/Semester 3/Exams/Projects/ProgramingExam2_CalebFontenot.java.html b/Semester 3/Exams/Projects/ProgramingExam2_CalebFontenot.java.html new file mode 100644 index 0000000..dd1a686 --- /dev/null +++ b/Semester 3/Exams/Projects/ProgramingExam2_CalebFontenot.java.html @@ -0,0 +1,165 @@ + + + +ProgramingExam2_CalebFontenot.java + + + + +
C:\Users\ar114\Documents\NetBeansProjects\ProgramingExam2_CalebFontenot\src\main\java\com\mycompany\programingexam2_calebfontenot\ProgramingExam2_CalebFontenot.java
+
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Project/Maven2/JavaApp/src/main/java/${packagePath}/${mainClassName}.java to edit this template
+ */
+package com.mycompany.programingexam2_calebfontenot;
+
+/**
+ *
+ * @author ar114
+ */
+public class ProgramingExam2_CalebFontenot<T> {
+
+    Node<T> head;
+    Node<T> tail;
+
+    class Node<T> {
+
+        T t;
+        Node<T> l;
+        Node<T> r;
+    }
+
+    public T removeAt(int pos) {
+        if (pos < 0 || pos > size() - 1) {
+            throw new IndexOutOfBoundsException();
+        }
+
+        //list is empty
+        if (size() == 0) {
+            throw new RuntimeException("The list empty.");
+        }
+        T returnT = null;
+
+        if (pos == 0)//remove at 0
+        {
+            Node<T> pointer = head.r;
+            returnT = (T) head.t;
+            pointer.l = null;
+            head = pointer;
+        } else if (pos == (size() - 1))//remove at end
+        {
+            Node<T> pointer = tail.l.l;
+            returnT = (T) tail.t;
+            pointer.r = null;
+            tail = pointer;
+        } else//remove in the middle
+        {
+            // Iterate to the element position
+            Node<T> pointer = head;
+            for (int i = 0; i < pos - 1; ++i) {
+                pointer = pointer.r;
+            }
+            pointer.r = pointer.r.r;
+            pointer.l = pointer.r;
+            returnT = (T) pointer.t;
+            
+        }
+
+        return returnT;
+    }
+
+    public void clear() {
+        head = tail = null;
+    }
+
+    public void addAt(T t, int pos) {
+        if (pos < 0 || pos > size()) {
+            throw new IndexOutOfBoundsException();
+        }
+        Node<T> newNode = new Node<T>();
+        newNode.t = t;
+        if (head == null)//list is empty
+        {
+            head = tail = newNode;
+        } else if (pos == 0)//add at the front
+        {
+            newNode.r = head;
+            head.l = newNode;
+            head = newNode;
+        } else if (pos == size())//add at the end
+        {
+            newNode.l = tail;
+            tail.r = newNode;
+            tail = newNode;
+        } else//middle
+        {
+            Node<T> p = head;
+            for (int i = 0; i < pos - 1; ++i) {
+                p = p.r;
+            }
+            newNode.l = p;
+            newNode.r = p.r;
+            p.r.l = newNode;
+            p.r = newNode;
+        }
+    }
+
+    public int size() {
+        Node<T> p = head;
+        int count = 0;
+        while (p != null) {
+            count++;
+            p = p.r;
+        }
+        return count;
+    }
+
+    @Override
+    public String toString() {
+        String s = "";
+        Node<T> p = head;
+        while (p != null) {
+            s += p.t.toString() + " ";
+            p = p.r;
+        }
+        return s;
+    }
+
+    public static void main(String[] args) {
+        ProgramingExam2_CalebFontenot<Integer> list = new ProgramingExam2_CalebFontenot<Integer>();
+
+        list.addAt(20, 0);
+        list.addAt(10, 0);
+        list.addAt(40, 2);
+        list.addAt(30, 2);
+        list.addAt(50, 4);
+        System.out.println(list);
+        System.out.println(list.removeAt(0));
+        System.out.println(list);
+        System.out.println(list.removeAt(2));
+        System.out.println(list);
+
+        System.out.println(list.removeAt(2));
+        System.out.println(list.toString());
+    }
+
+}
+
+
+ diff --git a/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/pom.xml b/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/pom.xml new file mode 100644 index 0000000..cced906 --- /dev/null +++ b/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/pom.xml @@ -0,0 +1,14 @@ + + + 4.0.0 + com.mycompany.programmingquiz1_calebfontenot + ProgrammingQuiz1_CalebFontenot + 1.0-SNAPSHOT + jar + + UTF-8 + 11 + 11 + com.mycompany.programmingquiz1_calebfontenot.ProgrammingQuiz1_CalebFontenot + + \ No newline at end of file diff --git a/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/src/main/java/com/mycompany/programmingquiz1_calebfontenot/DoubleLinkedListExam.java b/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/src/main/java/com/mycompany/programmingquiz1_calebfontenot/DoubleLinkedListExam.java new file mode 100644 index 0000000..3a5a5ef --- /dev/null +++ b/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/src/main/java/com/mycompany/programmingquiz1_calebfontenot/DoubleLinkedListExam.java @@ -0,0 +1,101 @@ +/* + * 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 com.mycompany.programmingquiz1_calebfontenot; + +/** + * + * @author ar114 + * @param + */ +public class DoubleLinkedListExam { + + Node head; + Node tail; + + class Node { + + T t; + Node l; + Node r; + } + + public T removeAt(int pos) { + return null; + } + + public void clear() { + head = tail = null; + } + + public void addAt(T t, int pos) { + System.out.println("Linked List size: " + this.size()); + if (pos == 0) { // add first element + Node newNode = new Node(); + newNode.t = t; + head = tail = newNode; + return; + } + if (pos == this.size()) { // add at end + Node tmp = tail; + Node newNode = new Node(); + newNode.t = t; + tmp.r = newNode; + newNode.l = tmp; + newNode.r = null; + tail = newNode; + return; + } + if (pos < this.size()) { // add in middle + Node pointer = head; + for (int i = 0; i < this.size() - 1; ++i) { + pointer = pointer.r; + } + Node newNode = new Node(); + newNode.t = t; + newNode.l = pointer; + newNode.r = pointer.l; + pointer.r = newNode; + pointer.r.l = newNode; + return; + } + if (pos < 0 || this.size() < pos) { + throw new IndexOutOfBoundsException("Given index is outside the range of acceptible values."); + } + + } + + public int size() { + Node p = head; + int count = 0; + while (p != null) { + count++; + p = p.r; + } + return count; + } + + @Override + public String toString() { + String s = ""; + Node p = head; + while (p != null) { + s += p.t.toString() + " "; + p = p.r; + } + return s; + } + + public static void main(String[] args) { + DoubleLinkedListExam list = new DoubleLinkedListExam<>(); + list.addAt(10, 0); + System.out.println(list); + list.addAt(30, 1); + list.addAt(20, 1); + list.addAt(5, 0); + + System.out.println(list); + } + +} diff --git a/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/src/main/java/com/mycompany/programmingquiz1_calebfontenot/InsertionSort.java b/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/src/main/java/com/mycompany/programmingquiz1_calebfontenot/InsertionSort.java new file mode 100644 index 0000000..7b5b30c --- /dev/null +++ b/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/src/main/java/com/mycompany/programmingquiz1_calebfontenot/InsertionSort.java @@ -0,0 +1,41 @@ +/* + * 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 com.mycompany.programmingquiz1_calebfontenot; + +/** + * + * @author ar114 + */ +public class InsertionSort { + public static void insertionSort(String[] list) + { + int i = 1; + while (i < list.length) + { + if (list[i - 1].compareTo(list[i]) >= 0) { + String tmp = list[i - 1]; + list[i - 1] = list[i]; + list[i] = tmp; + } + ++i; + //1. Loop that opens the hole by shifting to the right + + //2. End of loop of shifting ---Insert the current at the opened hole list[j+1] + + } + } + public static void printArray(String[] array) { + for (String current: array) { + System.out.print(current + " "); + } + System.out.println(); + } + public static void main(String[] args) { + String[] array = {"Zedfrey", "Hello", "Glorious", "World"}; + printArray(array); + insertionSort(array); + printArray(array); + } +} diff --git a/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/src/main/java/com/mycompany/programmingquiz1_calebfontenot/ProgrammingQuiz1_CalebFontenot.java b/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/src/main/java/com/mycompany/programmingquiz1_calebfontenot/ProgrammingQuiz1_CalebFontenot.java new file mode 100644 index 0000000..e768658 --- /dev/null +++ b/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/src/main/java/com/mycompany/programmingquiz1_calebfontenot/ProgrammingQuiz1_CalebFontenot.java @@ -0,0 +1,17 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/Project/Maven2/JavaApp/src/main/java/${packagePath}/${mainClassName}.java to edit this template + */ + +package com.mycompany.programmingquiz1_calebfontenot; + +/** + * + * @author ar114 + */ +public class ProgrammingQuiz1_CalebFontenot { + + public static void main(String[] args) { + System.out.println("Hello World!"); + } +} diff --git a/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/target/ProgrammingQuiz1_CalebFontenot-1.0-SNAPSHOT.jar b/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/target/ProgrammingQuiz1_CalebFontenot-1.0-SNAPSHOT.jar new file mode 100644 index 0000000..943580d Binary files /dev/null and b/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/target/ProgrammingQuiz1_CalebFontenot-1.0-SNAPSHOT.jar differ diff --git a/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/target/classes/com/mycompany/programmingquiz1_calebfontenot/DoubleLinkedListExam$Node.class b/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/target/classes/com/mycompany/programmingquiz1_calebfontenot/DoubleLinkedListExam$Node.class new file mode 100644 index 0000000..f64babc Binary files /dev/null and b/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/target/classes/com/mycompany/programmingquiz1_calebfontenot/DoubleLinkedListExam$Node.class differ diff --git a/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/target/classes/com/mycompany/programmingquiz1_calebfontenot/DoubleLinkedListExam.class b/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/target/classes/com/mycompany/programmingquiz1_calebfontenot/DoubleLinkedListExam.class new file mode 100644 index 0000000..5610251 Binary files /dev/null and b/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/target/classes/com/mycompany/programmingquiz1_calebfontenot/DoubleLinkedListExam.class differ diff --git a/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/target/classes/com/mycompany/programmingquiz1_calebfontenot/InsertionSort.class b/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/target/classes/com/mycompany/programmingquiz1_calebfontenot/InsertionSort.class new file mode 100644 index 0000000..72c88ab Binary files /dev/null and b/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/target/classes/com/mycompany/programmingquiz1_calebfontenot/InsertionSort.class differ diff --git a/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/target/classes/com/mycompany/programmingquiz1_calebfontenot/ProgrammingQuiz1_CalebFontenot.class b/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/target/classes/com/mycompany/programmingquiz1_calebfontenot/ProgrammingQuiz1_CalebFontenot.class new file mode 100644 index 0000000..f24cda4 Binary files /dev/null and b/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/target/classes/com/mycompany/programmingquiz1_calebfontenot/ProgrammingQuiz1_CalebFontenot.class differ diff --git a/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/target/maven-archiver/pom.properties b/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/target/maven-archiver/pom.properties new file mode 100644 index 0000000..9031ae4 --- /dev/null +++ b/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/target/maven-archiver/pom.properties @@ -0,0 +1,5 @@ +#Generated by Maven +#Sun Dec 03 12:52:32 CST 2023 +artifactId=ProgrammingQuiz1_CalebFontenot +groupId=com.mycompany.programmingquiz1_calebfontenot +version=1.0-SNAPSHOT diff --git a/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst new file mode 100644 index 0000000..e2a689c --- /dev/null +++ b/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -0,0 +1,4 @@ +com/mycompany/programmingquiz1_calebfontenot/InsertionSort.class +com/mycompany/programmingquiz1_calebfontenot/DoubleLinkedListExam.class +com/mycompany/programmingquiz1_calebfontenot/ProgrammingQuiz1_CalebFontenot.class +com/mycompany/programmingquiz1_calebfontenot/DoubleLinkedListExam$Node.class diff --git a/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst new file mode 100644 index 0000000..68d4251 --- /dev/null +++ b/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -0,0 +1,3 @@ +/home/caleb/ASDV-Java/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/src/main/java/com/mycompany/programmingquiz1_calebfontenot/ProgrammingQuiz1_CalebFontenot.java +/home/caleb/ASDV-Java/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/src/main/java/com/mycompany/programmingquiz1_calebfontenot/InsertionSort.java +/home/caleb/ASDV-Java/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/src/main/java/com/mycompany/programmingquiz1_calebfontenot/DoubleLinkedListExam.java diff --git a/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst new file mode 100644 index 0000000..e69de29