java 实现 数据结构 总结:链表 栈 队列最近在准备找工作的事情,就复习了一下java。翻了一下书和网上的教材,
java 实现 数据结构 总结:链表 栈 队列
最近在准备找工作的事情,就复习了一下java。翻了一下书和网上的教材,发现虽然很多书是用java讲数据结构的,但是侧重于将数据结构本身的知识,利用java本身的类库来实现数据结构的系统性的讲解少之又少,所以在此做一下总结,方便各位正在准备工作的和用java实现数据结构的朋友们。
//Stack
Stack<String> st=new Stack<String>();
//Stack<Integer> st=new Stack<Integer>();
st.push("1a");
st.push("2b");
st.push("3c");
st.push("4d");
System.out.println("pop is:"+st.pop());
System.out.println("size is:"+st.size());
System.out.println("peek is:"+st.peek());
System.out.println("isEmpty is:"+st.isEmpty());
System.out.println("toString is:"+st.toString());
System.out.println();
//Queue
Queue<String> qu=new LinkedList<String>();//wrong:Queue<String> qu=new Queue<String>();
qu.add("1a");
qu.add("2b");
qu.add("3c");
qu.add("4d");
//qu.offer("4d");//equal to add,but no exception
System.out.println("remove is:"+qu.remove());
//System.out.println("poll is:"+qu.poll());//equal to remove,but no exception
System.out.println("peek is:"+qu.peek());
System.out.println(qu.toString());
System.out.println();
//link list 鸣谢:http://wangyu.iteye.com/blog/190762
LinkedList<String> head = new LinkedList<String>();
head.add("1");
head.add("3");
head.add(1, "2");
//鏈表會自動用遍歷的方式打印所有內容
System.out.println(head);
System.out.println("size is:"+head.size());
//利用Vector或者是ArrayList等Collection往鏈表中加數據
Vector<String> v = new Vector<String>(); //need to import java.util.Vector;
//向Vector中加入東西
v.add("a");
v.add("b");
//將當前Vector加在當前鏈表的最后
head.addAll(v);
System.out.println(head);
//將當前Vector加在當前鏈表的指定位置
head.addAll(2, v);
System.out.println(head);
//打印指定位置的內容
System.out.println("get(2) is:"+head.get(2));
System.out.println("index is:"+head.indexOf(head.get(2)));
head.addFirst("fist");
head.addLast("last");
System.out.println(head);
//刪除第一個
head.remove(head.getFirst());
head.remove(head.getLast());
System.out.println(head);
//再刪除第一個,采用下標的方式,下標從0開始
head.remove(0);
System.out.println(head);