用LinkedList集合演示棧和隊列的操作
阿新 • • 發佈:2017-12-28
link sys new p s pan 返回 註意 兩種 結果
在數據結構中,棧和隊列是兩種重要的線性數據結構。它們的主要不同在於:棧中存儲的元素,是先進後出;隊列中存儲的元素是先進先出。我們接下來通過LinkedList集合來演示棧和隊列的操作。
import java.util.LinkedList; /** * 用LinkedList集合演示棧和隊列操作 * @author 李章勇 */ public class Test1 { public static void main(String[] args) { LinkedList<String> test=new LinkedList<>(); //1.演示棧Stack操作System.out.println("1.演示棧Stack操作-----"); System.out.println("(1)向棧中添加元素 push()"); test.push("a"); test.push("b"); test.push("c"); test.push("e"); test.push("f"); test.push("g"); System.out.println(test.toString()); System.out.println("(2)從棧中取元素,但是不刪除 peek()"); String peek = test.peek();System.out.println("用peek()取出一個元素:"+peek.toString()); System.out.println("取出一個元素後,集合為:"+test.toString()); System.out.println("(3)從棧中取元素,並且刪除 pop()"); String pop = test.pop(); System.out.println("用pop()取出一個元素:"+pop); System.out.println("取出一個元素後,集合為:"+test.toString()); test.clear(); //2.演示隊列Queue操作System.out.println("2.演示隊列Queue操作-----"); System.out.println("(1)向隊列中添加元素 add()"); test.add("a"); test.add("b"); test.add("c"); test.add("d"); test.add("e"); test.add("f"); System.out.println(test.toString()); System.out.println("(2)從隊列中移除元素 element()"); //註意:與peek()不同的是,如果隊列為空,element()會返回一個異常,為此,需要先判斷test集合是否為空 if(test!=null){ String element = test.element(); System.out.println("用element取出一個元素:"+element); System.out.println("取出一個元素後,集合為:"+test.toString()); } System.out.println("(3)從隊列中移除元素 poll()"); String poll = test.poll(); System.out.println("用poll()取出一個元素:"+poll); System.out.println("取出一個元素後,集合為:"+test.toString()); } }
運行結果如下:
1.演示棧Stack操作----- (1)向棧中添加元素 push() [g, f, e, c, b, a] (2)從棧中取元素,但是不刪除 peek() 用peek()取出一個元素:g 取出一個元素後,集合為:[g, f, e, c, b, a] (3)從棧中取元素,並且刪除 pop() 用pop()取出一個元素:g 取出一個元素後,集合為:[f, e, c, b, a] 2.演示隊列Queue操作----- (1)向隊列中添加元素 add() [a, b, c, d, e, f] (2)從隊列中移除元素 element() 用element取出一個元素:a 取出一個元素後,集合為:[a, b, c, d, e, f] (3)從隊列中移除元素 poll() 用poll()取出一個元素:a 取出一個元素後,集合為:[b, c, d, e, f]
用LinkedList集合演示棧和隊列的操作