/*Linked List Lab warmup shell for Senior research course. */ // This example is from // http://www.glenmccl.com/tip_005.htm import javax.swing.JOptionPane; import java.util.Scanner; import java.io.*; public class LinkedListShell { public static Node removeNth(Node list, int n) { Node p; if (n == 0) { p = list; list = list.next; list.length--; p = null; } else if (n < list.length) { Node back = list; Node front = list.next; while(n > 1) { //..complete this n--; } // statement goes here // front = null; list.length--; } return list; } public static Node removeNthRec(Node list, int n) { //This should work Node p; if (n == 0) { p = list.next; list = null; p.length--; return p; } else if (n < list.length) { list.next = removeNthRec(list.next, n-1); return list; } else return list; } public static Node addNodeFirst(Node list, Node newnode) { newnode.next = list; list = newnode; list.length++; return list; } public static Node insertLast(Node list, Node newnode) { Node p; if (list == null) list = newnode; else { p = list; // complete this } list.length++; return list; } public static void printList(Node list) { Node p = list; while (p != null) { System.out.printf("%3d", p.data); p = p.next; } System.out.println(); } public static void main(String[] args) { Node head = null; // add some entries to list for (int i = 1; i <= 10; i++) { Node temp = new Node(i); head = addNodeFirst(head, temp); // head = insert(head, temp); } printList(head); head = removeNth(head, 0); printList(head); System.out.println("Length=" + head.length); head = removeNth(head, 3); printList(head); System.out.println("Length=" + head.length); head = removeNth(head, 7); printList(head); System.out.println("Length=" + head.length); head = removeNthRec(head, 0); printList(head); System.out.println("Length=" + head.length); head = removeNthRec(head, 2); printList(head); System.out.println("Length=" + head.length); head = removeNthRec(head, 4); printList(head); System.out.println("Length=" + head.length); head = removeNthRec(head, 4); printList(head); System.out.println("Length=" + head.length); } }