棧被稱爲抽象數據類型,它只是一個接口。然後爲什麼棧會出現在數據結構topic.Is這是一個數據結構還是抽象數據類型?兩者是相同還是不同?爲什麼堆棧被稱爲抽象數據類型。如果堆棧是adt,那麼如何實現堆棧?
1
A
回答
1
維基百科:
Abstract data types
是純理論性的實體,使用(除其他事項外),以簡化的抽象算法的描述中,進行分類和評估數據結構在計算機科學中,
data structure
是一種在計算機中存儲和組織數據的特殊方式,以便可以有效地使用它描述
stack
的一種方法是作爲後進先出(LIFO)抽象數據類型pe和線性數據結構。一個堆棧可以具有任何抽象數據類型作爲元素,但其特徵在於兩個基本操作,稱爲push和pop(或pull)。
因此,可以得出結論,抽象數據類型是理論上的,但實現時稱爲數據結構。
更清楚:
數據類型可以被認爲是抽象的,當它在它的操作來定義的,它的實現是隱藏的(這樣我們就可以始終與另一個替換一個實施,例如, ,效率原因,這不會影響程序中的任何內容)。
0
棧是一個抽象的數據類型和它也被稱爲線性數據結構。它如下後進先出(LIFO)strategy.so其數據結構的一部分...
0
的抽象數據類型(ADT)是數據集的一組理論規則和可以對一組數據執行的一組操作。數據類型在與各種具體實現無關時被稱爲抽象。
假設整數支持加法,乘法,除法運算。
這些操作不會對字符串數據的工作,因爲他們不能支持multiplication.hence Integer是不是ADT。
現在u得到的地步,
如果你的數據類型的操作並不關心數據的叫做抽象數據Structure.eg堆棧,列表,隊列...這裏這些東西的類型支持像推送業務( ),pop(),add(),delete()不關心我們推送,彈出,刪除。
這取決於(列表,堆棧,隊列),我們需要決定如何將這些ADT的管理類型實施。
爲什麼Stack是抽象數據類型?
`Stack s = new Stack<>();
List l = new LinkedList<>();
s.push(45);
s.push("str");
//s.push("String");
if(s.peek().equals(45)){
System.out.println("Treu");
}`
我不認爲需要更多解釋。
相關問題
- 1. 堆棧ADT(抽象數據類型)實現 - Array vs linked
- 2. PyPy 1.7爲什麼不實現「無堆棧」堆棧?
- 3. 全堆棧,堆棧交換等,什麼是堆棧?
- 4. 堆棧爲空...爲什麼?
- 5. 什麼「堆棧無效,堆棧只支持堆棧1和堆棧5」是什麼意思?
- 6. 爲什麼堆棧溢出?
- 7. 爲什麼堆棧有界?
- 8. 爲什麼堆棧炸燬
- 9. 在堆棧的ArrayList中,如果堆棧爲空,爲什麼索引不正確?
- 10. 堆棧實現
- 11. 簡單堆棧示例,如果堆棧爲空,如何返回?
- 12. C++堆棧/堆棧。爲什麼只有一個新操作員?
- 13. 什麼是堆棧跟蹤?
- 14. 什麼是InfiniBand堆棧?
- 15. 什麼是硬件堆棧?
- 16. 什麼是堆棧跟蹤
- 17. 什麼是LAMP堆棧?
- 18. 什麼是jQuery堆棧?
- 19. 什麼是Linux堆棧?
- 20. 什麼是「堆棧顛簸」?
- 21. Python堆棧爲堆棧格式
- 22. 字符堆棧,字符串堆棧,整數堆棧,整數數組堆棧等
- 23. 什麼是'堆棧',因爲它與.Net
- 24. 爲什麼堆棧彈出(而不是+
- 25. C++堆棧實現
- 26. (Symfony 2.4)請求堆棧什麼是請求堆棧
- 27. 被稱爲函數堆棧ios
- 28. 爲什麼堆棧結束爲空?
- 29. 如果大部分數據都堆在堆棧上,堆棧內存的主要重要性/作用是什麼?
- 30. JVM - 堆棧和堆棧
棧是抽象數據類型,因爲它隱藏它是如何像使用數組實現,或者連接list.But它組織進行有效管理和檢索所以它的數據結構also.Am我服用它以正確的方式數據? – user1849655
是的。絕對。 – Azodious
謝謝你,我的理解清楚你的解釋。 – user1849655