Java棧和隊(duì)列都是在數(shù)據(jù)結(jié)構(gòu)中經(jīng)常使用的數(shù)據(jù)類(lèi)型,它們?cè)诓煌膽?yīng)用場(chǎng)景中有著廣泛的應(yīng)用。而在Java中,我們可以使用Stack類(lèi)來(lái)實(shí)現(xiàn)棧,使用Queue接口來(lái)實(shí)現(xiàn)隊(duì)列。
棧是一種后進(jìn)先出(Last In First Out,LIFO)的數(shù)據(jù)結(jié)構(gòu),它的基本操作包括入棧(push)、出棧(pop)和查看棧頂元素(peek)。下面是使用Java的Stack類(lèi)實(shí)現(xiàn)棧的示例代碼:
Stack<Integer> stack = new Stack<>(); // 入棧 stack.push(1); stack.push(2); stack.push(3); // 查看棧頂元素 int top = stack.peek(); // 出棧 int pop = stack.pop();
隊(duì)列是一種先進(jìn)先出(First In First Out,F(xiàn)IFO)的數(shù)據(jù)結(jié)構(gòu),它的基本操作包括入隊(duì)(offer)、出隊(duì)(poll)和查看隊(duì)頭元素(peek)。下面是使用Java的Queue接口實(shí)現(xiàn)隊(duì)列的示例代碼:
Queue<String> queue = new LinkedList<>(); // 入隊(duì) queue.offer("A"); queue.offer("B"); queue.offer("C"); // 查看隊(duì)頭元素 String head = queue.peek(); // 出隊(duì) String poll = queue.poll();
以上是Java中使用棧和隊(duì)列的基礎(chǔ)操作,在實(shí)際應(yīng)用中,棧和隊(duì)列還有很多高級(jí)應(yīng)用,例如棧的逆序輸出和括號(hào)匹配,隊(duì)列的優(yōu)先級(jí)隊(duì)列和循環(huán)隊(duì)列等等。