// SaveLink class in a file Link.java public class Link { public int data; public Link next; public Link() { next=null; } public Link(int item) { data=item; next=null; } public void displayLink() { System.out.println(data+" "); } }// class Link ////////////////////////////////////////////////////////////////////////////////// //Save LL class in a file as LL.java import java.util.Random; public class LL { private Link list; public LL() // constructor creates linked list { Link curr; // of randomly selected size and list=null; // random values for data in each link int ndata; Random r = new Random(); int n = Math.abs(r.nextInt()) %10; for (int i=1; i<=n; i++) { curr=new Link(); ndata = Math.abs(r.nextInt()) %10; curr.data=ndata; curr.next=list; list=curr; } } private void traverse(Link first) { if (first!= null) { System.out.println(first.data); traverse(first.next); } } public void llTraverse() { traverse(list); } public int llCountNodes() { return countNodes(list); } private int countNodes(Link first) { if (first == null) return 0; else return 1 + countNodes(first.next); } private int countZeroNodes(Link first) { if (first == null) return 0; else if (first.data == 0) return 1 + countZeroNodes(first.next); else return countZeroNodes(first.next); } public int llCountZeroNodes() { return countZeroNodes(list); } private int countItems(Link first, int item) { if (first == null) return 0; else if (first.data == item) return 1 + countItems(first.next, item); else return countItems(first.next, item); } public int llCountItems(int item) { return countItems(list, item); } private boolean itemInList(Link first, int item) { if (first == null) return false; else if (first.data == item) return true; else return itemInList(first.next, item); } public boolean llItemInList(int item) { return itemInList(list, item); } private int sumData(Link first ) { if (first == null) return 0; else return first.data + sumData(first.next); } public int llSumData() { return sumData(list); } } // class LL LinkedList ////////////////////////////////////////////////////////////////////////////////// // saveTLL class in a file TLL.java class TLL { // testing linked list examples public static void main(String[] args) { int n; LL l = new LL(); l.llTraverse(); System.out.println( "countNodes n = " +l.llCountNodes()); System.out.println( "countZeroNodes n = " +l.llCountZeroNodes()); System.out.println( "countItem 5 = " +l.llCountItems(5)); if (l.llItemInList(5)) System.out.println("5 in list" ); else System.out.println("5 not in list" ); System.out.println(); if (l.llItemInList2(5)) System.out.println("5 in list" ); else System.out.println("5 not in list" ); System.out.println(); System.out.println("Sum of Data in LL" + l.llSumData()); } //main } // TLL