1. 程式人生 > >用LinkedList集合演示棧和隊列的操作

用LinkedList集合演示棧和隊列的操作

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集合演示棧和隊列的操作