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);