暑期实习4月份笔试试题解答-Android 工程师(2)
2014-04-10 22:04
302 查看
某大型杀毒软件公司2014年4月份笔试试题解答,第二小题,实现Linkist,具体要求见程序,只实现了几个基本的功能,请大家指出不足之处。转载请注明出处。
/* 程序来源:实习生招聘 * 源文件名称:LinkList.java * 要 点: * 写一个java程序实现LinkList类。 * 最基本必须实现add、remove、get、size方法。 */ public class LinkList{ public static void main(String[] args){ LinkList ll = new LinkList(); ll.add(new String("123")); ll.add(new String("321")); ll.add(new Integer(88)); System.out.println("size: "+ll.size()); int i = 1; while(i<=ll.size()) System.out.println( ll.get(i++)); ll.remove(1); System.out.println( ll.get(1)); System.out.println("size: "+ll.size()); } class Node{ Object o = null; Node child = null; Node father = null; public Node(Object o){ this.o = o; } } Node head = new Node(new Object()); Node end = head; int size = 0; public void add(Object o){ Node node = new Node(o); node.father = end; end.child = node; end = node; size++; } public Object get(int num){ Node node = null; Object o = null; if(size == 0) System.out.println("size is 0"); else if(num>size) System.out.println("num > size"); else if(num<=0) System.out.println("num must > 0 "); else{ node = head.child; for(int i = 1;i<num;i++) node = node.child; o = node.o; } return o; } public Object remove(int num){ Node node = null; Object o = null; if(size == 0) System.out.println("size is 0"); else if(num>size) System.out.println("num > size"); else if(num<=0) System.out.println("num must > 0 "); else if(num != size){ node = head.child; for(int i = 1;i<num;i++) node = node.child; node.father.child = node.child; node.child.father = node.father; size--; o = node.o; }else{ node = end; end.father.child = null; end = node.father; size--; o = node.o; } return o; } public int size(){ return size; } }