天天看點

資料類型(算法第4版)1

       資料類型的值就是一組對象的集合,所有操作都是關于添加、删除或者通路集合中的對象。        基礎的資料類型:背包(Bag)、隊列(Queue)、棧(Stack)。 他們的不同在于删除和通路對象的順序内不同        Java的每份API中都含有一個無參的構造方法、一個向集合中添加單個元素是方法、一個測試集合是否為空的方法和一個傳回集合大小的方法。Stack和queue都含有一個能夠删除和添加集合中的特定元素的方法       泛型/參數化類型 集合類的抽象資料類型的一個關鍵特性是我們應該可以用他們存儲任意類型的資料

背包:          一種不支援從中删除元素的集合的資料類型------目的是幫助使用者收集元素并疊代周遊所收集到的資料(也可以檢查背包是口為空或者元素的數量),使用背包可以說明元素的處理順序不重要。例如簡單的計算标準輸入中的所有double型值的平均值和樣本标準差,在這些計算中,數的計算順序與結果無關,是以可以将他們儲存在背包對象裡并使用foreach文法計算。

先進先出(FIFO)---隊列 按照任務産生的順序完成完成他們的政策:在劇院門前排隊的人、在收費站前排隊的汽車等等。 在應用程式中使用隊列的主要原因是在用集合儲存元素的同時儲存他們的相對順序:入列和出列順序一緻

後進先出(LIFO)--下壓棧 你的郵件放在桌子上時使用的就是棧/上網時點選一個超連結,浏覽器會顯示一個新網頁(并将他壓入一個棧),總可以通過回退重新通路以前的網頁(從棧中彈出)。在應用成語中使用棧疊代器的一個典型原因時在用集合儲存元素的同時颠覆他們的相對順序。 如何才能得到一個(有字元串表示的)算數表達式的值呢? 用兩個棧(一個儲存運算符、一個儲存操作數)即可。

繼續閱讀