色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

java 優(yōu)先隊(duì)列和棧

Java中,優(yōu)先隊(duì)列和棧都是常用的數(shù)據(jù)結(jié)構(gòu)。它們?cè)诓煌膱鼍跋戮哂胁煌膬?yōu)勢,下面我們來分別介紹這兩種數(shù)據(jù)結(jié)構(gòu)。

// 優(yōu)先隊(duì)列的示例代碼
import java.util.PriorityQueue;
public class PriorityQueueExample {
public static void main(String[] args) {
PriorityQueuepq = new PriorityQueue<>();
pq.add(2);
pq.add(5);
pq.add(1);
System.out.println(pq); // 輸出:[1, 5, 2]
pq.poll();
System.out.println(pq); // 輸出:[2, 5]
System.out.println(pq.peek()); // 輸出:2
}
}

首先來介紹優(yōu)先隊(duì)列。它是一個(gè)可以自動(dòng)排序的隊(duì)列,可以確保每次取出隊(duì)列的元素都是隊(duì)列中優(yōu)先級(jí)最高的元素。在Java中,優(yōu)先隊(duì)列是通過內(nèi)部使用堆來實(shí)現(xiàn)的,因此插入和刪除元素的時(shí)間復(fù)雜度約為O(logn)。

上面的代碼展示了如何使用Java中的優(yōu)先隊(duì)列。我們創(chuàng)建了一個(gè)Integer類型的優(yōu)先隊(duì)列,并順序添加了3個(gè)元素。可以看到隊(duì)列內(nèi)部自動(dòng)排序后的結(jié)果和我們添加的順序顯然是不同的。接著我們?nèi)〕鲫?duì)列中優(yōu)先級(jí)最高的元素,并輸出隊(duì)列。

// 棧的示例代碼
import java.util.Stack;
public class StackExample {
public static void main(String[] args) {
Stackstack = new Stack<>();
stack.push(1);
stack.push(2);
stack.push(3);
System.out.println(stack); // 輸出:[1, 2, 3]
stack.pop();
System.out.println(stack); // 輸出:[1, 2]
System.out.println(stack.peek()); // 輸出:2
}
}

接下來介紹棧。棧是一種后進(jìn)先出的數(shù)據(jù)結(jié)構(gòu),也就是說最后添加的元素最先被訪問。在Java中,棧也是通過數(shù)組或鏈表來實(shí)現(xiàn)的。棧的時(shí)間復(fù)雜度為O(1)。

上面的代碼展示了如何使用Java中的棧。我們創(chuàng)建了一個(gè)Integer類型的棧,并向其中添加了三個(gè)元素。最后我們刪除了棧頂元素,輸出得到的結(jié)果。

總之,優(yōu)先隊(duì)列和棧在Java的編程中都是很常用的,對(duì)它們有充分的了解可以更好地使用它們優(yōu)化代碼。