隊列

隊列的特色:

隊列是一種特殊的線性結構,它只容許在隊列的首部(head)進行刪除操做,這稱爲「出隊」,而在隊列的尾部(tail)進行插入操做,這稱爲「入隊」,當隊列中沒有元素時(即head=tail),稱爲空隊列。
隊列將是咱們從此學習廣搜以及隊列優化(Bellman-Ford)最短路算法的核心數據結構。
代碼以下:java

import java.util.LinkedList;
import java.util.Queue;
public class D隊列 {

	public static void main(String[] args) {
		
		        Queue<Integer> queue = new LinkedList<>();//建立隊列
		        queue.offer(1);//如下是添加元素進對列
		        queue.offer(2);
		        queue.offer(3);
		        queue.offer(4);
		        for(int e : queue) {//遍歷輸出,定義一個變量e遍歷隊列輸出
		            System.out.println(e);//1 2 3 4 
		        }
		        System.out.println("**********");
		        System.out.println("poll : " + queue.poll());//1,poll取出並刪除隊頭的元素
		        System.out.println("----------");

		        for(int e : queue) {
		            System.out.println(e); //2 3 4 
		        }
		        System.out.println("elemet is: " + queue.element());//2
		        System.out.println("----------");

		        for(int e : queue) {
		            System.out.println(e);//2 3 4 
		        }

		        System.out.println("peek : " + queue.peek());//2
		        System.out.println("**********");

		        for(int e : queue) {
		            System.out.println(e);//2 3 4
		        }
	}
}

1.Java中隊列的建立以及頭文件算法

Queue<Integer> queue = new LinkedList<>();

頭文件:
import java.util.LinkedList;
import java.util.Queue;

2.關於隊列的「出入」數據結構

往隊列中添加元素:add(若是隊列已經滿,則拋出異常);
                put( 若是已經滿了,則等待它爲空或者拋出異常);
                offer(已滿,返回false);
從隊列中取出或者刪除元素:
                remove(直接刪除隊頭的元素);
                peek(直接取出隊頭元素並不刪除);
                element(對peek方法進行簡單封裝,若是隊頭元素存在則取出,不存在則拋出異常);
                poll(取出並刪除隊頭的元素,當隊列爲空則返回null);
                take(取出並刪除隊頭元素,爲空則等待或者拋出異常);
offer()方法通常與pool()方法相對應;
put方法通常與take(方法相對應);

3.對上述代碼的分解
(1).poll()學習

System.out.println("poll : " + queue.poll());//1,poll取出並刪除隊頭的元素

(2).element()優化

System.out.println("elemet is: " + queue.element());//2由於上一個已經刪除了隊頭元素1,因此此時隊頭元素是2,直接取出。

(3).peek()code

System.out.println("peek : " + queue.peek());//2直接取出並不刪除
相關文章
相關標籤/搜索