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

java棧和隊列的定義

劉若蘭1年前6瀏覽0評論

Java中的棧(Stack)和隊列(Queue)都是常見的數(shù)據(jù)結構。它們分別用于處理一些具有類似先進先出(FIFO)或后進先出(LIFO)特性的數(shù)據(jù)。

Java的棧(Stack)是一種簡單的,基于后進先出(LIFO)的數(shù)據(jù)結構。這意味著,在堆棧中最后添加的元素必須是第一個被刪除的元素。棧是線性結構,可以使用數(shù)組或鏈表實現(xiàn)。以下是一個基于數(shù)組實現(xiàn)的棧代碼示例:

class Stack {
private int[] arr;
private int top;
public Stack(int size) {
this.arr = new int[size];
this.top = -1;
}
public void push(int x) {
if (top == arr.length - 1) {
System.out.println("Stack Overflow");
return;
}
arr[++top] = x;
}
public int pop() {
if (top == -1) {
System.out.println("Stack Underflow");
return -1;
}
return arr[top--];
}
public int peek() {
if (top == -1) {
System.out.println("Stack Underflow");
return -1;
}
return arr[top];
}
}

Java的隊列(Queue)也是一個線性數(shù)據(jù)結構,它基于先進先出(FIFO)的原則。隊列有兩個主要操作:enqueue(進隊)和dequeue(出隊)。enqueue操作將元素添加到隊列的尾部,而dequeue操作則從隊列頭部提取元素。以下是一個基于鏈表實現(xiàn)的隊列代碼示例:

class Queue {
Node head, tail;
public void enqueue(int x) {
Node newNode = new Node(x);
if (tail == null) {
head = tail = newNode;
return;
}
tail.next = newNode;
tail = newNode;
}
public void dequeue() {
if (head == null) return;
head = head.next;
if (head == null) tail = null;
}
class Node {
int val;
Node next;
public Node(int x) {
this.val = x;
this.next = null;
}
}
}

以上是Java棧和隊列的定義以及基于數(shù)組和鏈表的示例,開發(fā)者可以根據(jù)實際需要選擇適合的數(shù)據(jù)結構及其實現(xiàn)方法。