簡體   English   中英

誰能用每個程序解釋java中的堆棧,隊列,鏈接列表?

[英]can anyone explain stack ,queue,linked list in java with programs for each?

我是Java的新手,並且除了Java oops concept之外我都不知道其他語言。我是Programming。的新手,所以我很容易理解,誰能用程序解釋Java中的堆棧,隊列,鏈接列表。每?

堆棧是一種抽象的數據類型或集合,其中在Push中,向集合中添加數據元素,而Pop是從集合中刪除數據元素,是對集合執行的主要操作。 推和彈出操作僅在堆棧的一端(稱為“堆棧頂部”)執行。

換句話說,堆棧可以簡單地定義為后進先出(LIFO)數據結構,即,在堆棧頂部添加的最后一個元素(In)應該是要從堆棧中刪除(Out)的第一個元素。

// Demonstrate the Stack class.
import java.util.*;
class StackDemo {
static void showpush(Stack st, int a) {
st.push(new Integer(a));
System.out.println("push(" + a + ")");
System.out.println("stack: " + st);
}
static void showpop(Stack st) {
System.out.print("pop -> ");
Integer a = (Integer) st.pop();
System.out.println(a);
System.out.println("stack: " + st);
}
public static void main(String args[]) {
Stack st = new Stack();
System.out.println("stack: " + st);
showpush(st, 42);
showpush(st, 66);
showpush(st, 99);
showpop(st);
showpop(st);
showpop(st);
try {
showpop(st);
} catch (EmptyStackException e) {
System.out.println("empty stack");
}
}
}

有關堆棧的更多詳細信息,請參見此官方鏈接

隊列:隊列使用先進先出(FIFO)規則支持插入和刪除操作

有關更多詳細信息: 隊列

鏈表:Java LinkedList類使用雙鏈表來存儲元素。 它提供了鏈表數據結構。 它繼承了AbstractList類並實現List和Deque接口。 有關更多詳細信息: 官方鏈接和另一個此鏈接

geeksforgeeks比較適合初學者。

考慮從官方Java平台文檔開始

堆棧

Stack類表示對象的后進先出(LIFO)堆棧。 它通過五個操作擴展了Vector類,這些操作允許將矢量視為堆棧。 提供了通常的推入和彈出操作,以及一種窺視堆棧頂部項目的方法,一種用於測試堆棧是否為空的方法以及一種用於在堆棧中搜索項目並發現其距離的方法。從頂部開始。

首次創建堆棧時,它不包含任何項目。

...

設計用於在處理之前容納元素的集合。 除了基本的“收集”操作外,隊列還提供其他插入,提取和檢查操作。 這些方法中的每一種都以兩種形式存在:一種在操作失敗時引發異常,另一種返回特殊值(取決於操作,為null或false)。 插入操作的后一種形式是專為與容量受限的Queue實現一起使用而設計的; 在大多數實現中,插入操作不會失敗

...

LinkedList

List和Deque接口的雙鏈接列表實現。 實現所有可選的列表操作,並允許所有元素(包括null)。

所有操作均按雙向鏈表的預期執行。 索引到列表中的操作將從開頭或結尾遍歷列表,以更接近指定索引的位置為准。

...

我已經實現了數組基礎堆棧和隊列。代碼可以在github位置和junit中獲得

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM