public class hw5 { static ListElem insert(ListElem L, int v) { ListElem p; if ( L == null ) { p = new ListElem(v); p.next = null; return(p); } else if ( v < L.value ) { p = new ListElem(v); p.next = L; return(p); } else { p = insert(L.next, v); L.next = p; return(L); } } static ListElem delete(ListElem L, int v) { ListElem p; if ( L == null ) { return(null); } else if ( L.value == v ) { return(L.next); } else { p = delete(L.next, v); L.next = p; return(L); } } static void PrintList(ListElem L) { System.out.print("The list is ---> "); while (L != null) { System.out.print(L.value + " "); L = L.next; } } public static void main(String[] args) { ListElem L = null; L = insert(L, 1500); System.out.println("Test case: insert in empty list: "); PrintList(L); System.out.println(); System.out.println("Correct output = 1500"); L = insert(L, 2500); System.out.println("Test case: insert at tail: "); PrintList(L); System.out.println(); System.out.println("Correct output = 1500 2500"); L = insert(L, 1000); System.out.println("Test case: insert at head: "); PrintList(L); System.out.println(); System.out.println("Correct output = 1000 1500 2500"); L = insert(L, 2000); System.out.println("Test case: insert at middle: "); PrintList(L); System.out.println(); System.out.println("Correct output = 1000 1500 2000 2500"); L = delete(L, 5500); System.out.println("Test case: delete non-existing element: "); PrintList(L); System.out.println(); System.out.println("Correct output = 1000 1500 2000 2500"); L = delete(L, 1500); System.out.println("Test case: delete at middle: "); PrintList(L); System.out.println(); System.out.println("Correct output = 1000 2000 2500"); L = delete(L, 2500); System.out.println("Test case: delete at tail: "); PrintList(L); System.out.println(); System.out.println("Correct output = 1000 2000"); L = delete(L, 1000); System.out.println("Test case: delete at head: "); PrintList(L); System.out.println(); System.out.println("Correct output = 2000"); L = delete(L, 2000); System.out.println("Test case: delete last element: "); PrintList(L); System.out.println(); System.out.println("Correct output = (empty)"); L = delete(L, 2000); System.out.println("Test case: delete from empty list: "); PrintList(L); System.out.println(); System.out.println("Correct output = (empty)"); } }