暑期实习4月份笔试试题解答-Android 工程师(2)

某大型杀毒软件公司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;
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值