public class ListAdd { public static void main(String[] args) { reportSum(createVector(args)); reportSum(createVector2(args)); } public static MyVector createVector(String[] args) { MyVector v; if (args.length > 0) { v = new MyVector(new Integer(args[0]),null); for (int i = 1; i < args.length ; i++) { MyVector head=v; while(head.getNext() != null) head = head.getNext(); head.setNext(new MyVector( new Integer(args[i]),null)); } } else v=null; return v; } public static MyVector createVector2(String[] args) { MyVector v; if (args.length > 0) { v = new MyVector(new Integer(args[0]),null); for (int i = 1; i < args.length ; i++) insertLast(new Integer(args[i]),v); } else v=null; return v; } public static void insertLast(Integer i,MyVector v) { if (v.getNext()==null) v.setNext(new MyVector(i,null)); else { MyVector rem = v.getNext(); // get tail insertLast(i,rem); } } public static void printVector(MyVector v) { System.out.println(myVectorToString(v)); } public static String myVectorToString(MyVector v) { MyVector head=v; String s = "{"+head; while (head != null) { head = head.getNext(); if (head != null) { s+=","; s+=head; } } s+="}"; return s; } public static void reportSum(MyVector v) { System.out.println(); System.out.print("Vector "+myVectorToString(v)+" "); System.out.print("has sum "+addVector(v)+"."); System.out.println(); } public static int addVector(MyVector v) { if (v==null) return 0; else return v.toValue()+addVector(v.getNext()); } }