第3章 表稿饰、棧和隊列(筆記與練習題)

抽象數(shù)據(jù)類型(abstract data type,ADT):帶有一組操作的一些隊形的集合缰儿,如:表畦粮、集合、圖以及與他們各自的操作一起形成的這些對象都可以被看做是抽象數(shù)據(jù)類型,就像整數(shù)返弹、實數(shù)锈玉、布爾數(shù)都是基本數(shù)據(jù)類型一樣;


3.3 Java collections API 中的表

collection(集合) : 它存儲一組類型相同的對象义起。Collection 接口擴展了Iterable 接口 .

實驗Iteration 接口 的類可以擁有增強的for 循環(huán)拉背。

Iteration 接口的思路是,集合通過iterater() 方法的調用默终,每個集合均可創(chuàng)建并返回給客戶一個實現(xiàn)Iterator接口的對象椅棺,“并將當前位置的概念在對象內部存儲下來?(這里不是很懂)”齐蔽。每次對next()的調用都給出集合的(尚未出現(xiàn)的)下一項两疚。hasNext()返回是否存在下一項。

當要刪除集合中的某個元素時含滴,Iterator 的remove() 方法比Collection 集合里的remove()方法安全诱渤,所以盡量使用Iterator.remove() 方法。Iterator.remove()方法刪除由iterator.next()返回的對象谈况,所以在調用iterator.remove()方法前必須先調用iterator.next()方法勺美。其優(yōu)點在于: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1递胧、Collection的remove() 必須首先找到要被刪除的項,如果知道所要刪除的項的準備位置赡茸,那么刪除它的開銷很可能要小很多缎脾。 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?2、如果對正在被迭代的集合進行結構上的改變(即調用Collection的add()/remove()/clear()方法)占卧,那么迭代器就不再合法(并會拋出Concurrent-ModificationException異常)遗菠。這是為了避免迭代器準備給出的某一項作為下一項,而該項之后的后者被刪除华蜒,或者一個新的項正好插入到該項的前面的情形(這在并發(fā)中很容易出現(xiàn))辙纬;所以在當在需要刪除某項時盡量使用Iterator.remove()方法,該點在阿里的開發(fā)文檔中也是被強調的友多;

List 接口牲平、ArrayList 類和LinkedList類

List 繼承了 Collection 接口,因此它具有包含Collection 接口的所有方法,外加其他定義的方法域滥。

ArrayList 提供了List ADT 的一種可增長數(shù)組的實現(xiàn)纵柿。其優(yōu)點在于,對get()和set()的調用花費時間是常數(shù)級的启绰,其缺點是新項的插入和已有項的刪除需要將該項后面的數(shù)全都移動(前/后)一位其開銷很大昂儒。除非是在末端新增或刪除。

LinkList t提供了 List ADT 的一種雙向鏈表實現(xiàn)委可。其優(yōu)點新的插入項和現(xiàn)有的刪除項開銷是常數(shù)級的(假設變動項的位置已知)渊跋,其缺點是不容易做索引,所以其get()方法的調用是昂貴的着倾。

最近加班多拾酝,自己時間不多······ 就記一些自己覺得重要的了

練習題:

3.6:Josephus problem:

/**

* ?Josephus problem: N個人編號從1 到N ,圍坐成一個圓圈卡者,從1號開始傳遞一個熱土豆蒿囤,進過M次傳遞之后拿著熱土豆的人被

* 清楚,圍坐繼續(xù)崇决,最后剩下的人取勝材诽,因此,如果M=0,和 N =5恒傻,則5 號游戲人獲勝脸侥,若M = 1 ,N = 5 那么背清除的人是 2盈厘, 4,1睁枕,5 則 3 號獲勝,編寫程解決M 和 N 在一般值下的問題

*/

看到這題有一點朦朧的印象,應該以前上學的時候老師講過譬重,但我估計上課睡著了拒逮,只記得老師說的是一道一群人圍成一圈自殺的題罐氨⊥喂妫看到這題我首先想到的是用雙向鏈表去實現(xiàn)。因為每次經過M次的傳遞必須減少一位數(shù)栅隐,鏈表結構的刪除比數(shù)組結構的要快塔嬉,而且游戲說的是玩家圍成一個圈,感覺鏈表結構更形象一點租悄。首先是創(chuàng)建列表谨究,游戲中就是將人先圍成一圈也就是遍歷N創(chuàng)建節(jié)點個數(shù)。其次將末尾的節(jié)點的后導.next指向首節(jié)點first,將首節(jié)點的前導.pre指向最后一個節(jié)點:先看代碼吧


之后從第一位玩家開始傳遞泣棋,傳遞了m 次后指針指向了當前要被殺死的人胶哲。將當前節(jié)點前一個人的后導.next指向當前節(jié)點的下一節(jié)點,當前的下一個節(jié)點的前導指向當前節(jié)點的前一個節(jié)點潭辈,這樣當前節(jié)點就相當于被刪除在該列表中鸯屿,然后指針指向下一個節(jié)點。直到當前節(jié)點的下一位是自己的時候把敢,表明游戲結束寄摆,當前節(jié)點是最后存活下來的人。


第四章 樹

二叉樹:其中每個節(jié)點都不能有多于兩個兒子

樹的先序遍歷:

樹的中序遍歷:

樹的后序遍歷:

二叉查找樹:









?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末修赞,一起剝皮案震驚了整個濱河市婶恼,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌柏副,老刑警劉巖勾邦,帶你破解...
    沈念sama閱讀 212,294評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異割择,居然都是意外死亡眷篇,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,493評論 3 385
  • 文/潘曉璐 我一進店門锨推,熙熙樓的掌柜王于貴愁眉苦臉地迎上來铅歼,“玉大人,你說我怎么就攤上這事换可∽狄” “怎么了?”我有些...
    開封第一講書人閱讀 157,790評論 0 348
  • 文/不壞的土叔 我叫張陵沾鳄,是天一觀的道長慨飘。 經常有香客問我,道長,這世上最難降的妖魔是什么瓤的? 我笑而不...
    開封第一講書人閱讀 56,595評論 1 284
  • 正文 為了忘掉前任休弃,我火速辦了婚禮,結果婚禮上圈膏,老公的妹妹穿的比我還像新娘塔猾。我一直安慰自己,他們只是感情好稽坤,可當我...
    茶點故事閱讀 65,718評論 6 386
  • 文/花漫 我一把揭開白布丈甸。 她就那樣靜靜地躺著,像睡著了一般尿褪。 火紅的嫁衣襯著肌膚如雪睦擂。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,906評論 1 290
  • 那天杖玲,我揣著相機與錄音顿仇,去河邊找鬼。 笑死摆马,一個胖子當著我的面吹牛臼闻,可吹牛的內容都是我干的。 我是一名探鬼主播今膊,決...
    沈念sama閱讀 39,053評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼些阅,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了斑唬?” 一聲冷哼從身側響起市埋,我...
    開封第一講書人閱讀 37,797評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎恕刘,沒想到半個月后缤谎,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 44,250評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡褐着,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,570評論 2 327
  • 正文 我和宋清朗相戀三年坷澡,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片含蓉。...
    茶點故事閱讀 38,711評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡频敛,死狀恐怖,靈堂內的尸體忽然破棺而出馅扣,到底是詐尸還是另有隱情斟赚,我是刑警寧澤,帶...
    沈念sama閱讀 34,388評論 4 332
  • 正文 年R本政府宣布差油,位于F島的核電站拗军,受9級特大地震影響任洞,放射性物質發(fā)生泄漏。R本人自食惡果不足惜发侵,卻給世界環(huán)境...
    茶點故事閱讀 40,018評論 3 316
  • 文/蒙蒙 一交掏、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧刃鳄,春花似錦盅弛、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,796評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至掌腰,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間张吉,已是汗流浹背齿梁。 一陣腳步聲響...
    開封第一講書人閱讀 32,023評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留肮蛹,地道東北人勺择。 一個月前我還...
    沈念sama閱讀 46,461評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像伦忠,于是被迫代替她去往敵國和親省核。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,595評論 2 350

推薦閱讀更多精彩內容

  • 數(shù)據(jù)結構是編程的起點,理解數(shù)據(jù)結構可以從三方面入手: 邏輯結構赋咽。邏輯結構是指數(shù)據(jù)元素之間的邏輯關系旧噪,可分為線性結構...
    yhthu閱讀 2,285評論 0 6
  • 一.線性表 定義:零個或者多個元素的有限序列。也就是說它得滿足以下幾個條件:??①該序列的數(shù)據(jù)元素是有限的脓匿。??②...
    Geeks_Liu閱讀 2,693評論 1 12
  • java筆記第一天 == 和 equals ==比較的比較的是兩個變量的值是否相等淘钟,對于引用型變量表示的是兩個變量...
    jmychou閱讀 1,488評論 0 3
  • 老街·老街 一 歷來對抹上時光和蘸滿歷史的東西感興趣,老屋陪毡,老街米母,廢墟,老手藝毡琉,里面住著一些和光陰耳鬢廝磨的故事铁瞒,...
    重慶風鈴閱讀 1,106評論 4 12