從零開始養(yǎng)成算法·篇四:雙向鏈表與雙向循環(huán)鏈表

一漠嵌、雙向鏈表

1盖呼、定義:從下圖中的定義結(jié)點(diǎn)的代碼我們能發(fā)現(xiàn),雙向與單向最明顯的區(qū)別就是是否可以反向查找上一結(jié)點(diǎn)约炎。

定義

2蟹瘾、創(chuàng)建:大致和單向的創(chuàng)建差不多,區(qū)別在于多了prior的處理

步驟:

1憾朴、*L 指向頭結(jié)點(diǎn)

2、新增數(shù)據(jù):

2.1.創(chuàng)建1個(gè)臨時(shí)的結(jié)點(diǎn)

2.2.為新增的結(jié)點(diǎn)建立雙向鏈表關(guān)系

① temp 是p的后繼

② temp 的前驅(qū)是p

③ p 要記錄最后的結(jié)點(diǎn)的位置,方便下一次插入

創(chuàng)建新鏈表

3灸拍、插入:

步驟:

1. 插入的位置不合法 為0或者為負(fù)數(shù)

2. 新建結(jié)點(diǎn)

3.將p指向頭結(jié)點(diǎn)!

4. 找到插入位置i直接的結(jié)點(diǎn)

5. 如果插入的位置超過(guò)鏈表本身的長(zhǎng)度

6. 判斷插入位置是否為鏈表尾部

1?? 將p->next 結(jié)點(diǎn)的前驅(qū)prior = temp

2?? 將temp->next 指向原來(lái)的p->next

3?? p->next 更新成新創(chuàng)建的temp

4?? 新創(chuàng)建的temp前驅(qū) = p

插入指定位置

4鸡岗、刪除

1.判斷雙向鏈表是否為空,如果為空則返回0

2. 將指針p移動(dòng)到刪除元素位置前一個(gè)

3.如果k>i 或者 p == NULL 則返回0

4.創(chuàng)建臨時(shí)指針delTemp 指向要?jiǎng)h除的結(jié)點(diǎn),并將要?jiǎng)h除的結(jié)點(diǎn)的data 賦值給*e,帶回到main函數(shù)

5. p->next 等于要?jiǎng)h除的結(jié)點(diǎn)的下一個(gè)結(jié)點(diǎn)

6. 如果刪除結(jié)點(diǎn)的下一個(gè)結(jié)點(diǎn)不為空,則將將要?jiǎng)h除的下一個(gè)結(jié)點(diǎn)的前驅(qū)指針賦值p

7. 刪除delTemp結(jié)點(diǎn)

刪除

二、雙向循環(huán)鏈表

1声登、創(chuàng)建

步驟:

1、*L 指向頭結(jié)點(diǎn)

2揣苏、新增數(shù)據(jù):

2.1.創(chuàng)建1個(gè)臨時(shí)的結(jié)點(diǎn)

2.2.為新增的結(jié)點(diǎn)建立雙向鏈表關(guān)系

①?temp 是p的后繼

② temp 的前驅(qū)是p

③ temp的后繼是*L

④ p 的前驅(qū)是新建的temp

⑤ p 要記錄最后的結(jié)點(diǎn)的位置,方便下一次插入

初始化或創(chuàng)建

2、插入

步驟:

1. 創(chuàng)建指針p,指向雙向鏈表頭

2.雙向循環(huán)鏈表為空,則返回0

3.找到插入前一個(gè)位置上的結(jié)點(diǎn)p

4.如果i>index 則返回0

5.創(chuàng)建新結(jié)點(diǎn)temp

6.temp 結(jié)點(diǎn)為空,則返回error

7.將生成的新結(jié)點(diǎn)temp數(shù)據(jù)域賦值e.

8.將結(jié)點(diǎn)temp 的前驅(qū)結(jié)點(diǎn)為p;

9.temp的后繼結(jié)點(diǎn)指向p->next;

10.p的后繼結(jié)點(diǎn)為新結(jié)點(diǎn)temp;

11.如果temp 結(jié)點(diǎn)不是最后一個(gè)結(jié)點(diǎn)绅作,temp節(jié)點(diǎn)的下一個(gè)結(jié)點(diǎn)的前驅(qū)為temp 結(jié)點(diǎn)


插入

3蛾派、刪除

步驟:

1.如果刪除到只剩下首元結(jié)點(diǎn)了,則直接將*L置空;

2.找到要?jiǎng)h除的結(jié)點(diǎn)

3.給e賦值要?jiǎng)h除結(jié)點(diǎn)的數(shù)據(jù)域

4.修改被刪除結(jié)點(diǎn)的前驅(qū)結(jié)點(diǎn)的后繼指針?

5.修改被刪除結(jié)點(diǎn)的后繼結(jié)點(diǎn)的前驅(qū)指針?

6. 刪除結(jié)點(diǎn)temp

刪除
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末洪乍,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子壳澳,更是在濱河造成了極大的恐慌,老刑警劉巖萎津,帶你破解...
    沈念sama閱讀 219,110評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件抹镊,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡垮耳,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,443評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門俊嗽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)铃彰,“玉大人,你說(shuō)我怎么就攤上這事牙捉【挫” “怎么了鬼佣?”我有些...
    開封第一講書人閱讀 165,474評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵霜浴,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我阴孟,道長(zhǎng),這世上最難降的妖魔是什么锹漱? 我笑而不...
    開封第一講書人閱讀 58,881評(píng)論 1 295
  • 正文 為了忘掉前任慕嚷,我火速辦了婚禮,結(jié)果婚禮上喝检,老公的妹妹穿的比我還像新娘。我一直安慰自己澡谭,他們只是感情好损俭,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,902評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著杆兵,像睡著了一般。 火紅的嫁衣襯著肌膚如雪琐脏。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,698評(píng)論 1 305
  • 那天祭衩,我揣著相機(jī)與錄音阅签,去河邊找鬼。 笑死政钟,一個(gè)胖子當(dāng)著我的面吹牛樟结,可吹牛的內(nèi)容都是我干的精算。 我是一名探鬼主播瓢宦,決...
    沈念sama閱讀 40,418評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼驮履!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起玫镐,我...
    開封第一講書人閱讀 39,332評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤怠噪,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后傍念,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,796評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡双藕,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,968評(píng)論 3 337
  • 正文 我和宋清朗相戀三年秦陋,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片驳概。...
    茶點(diǎn)故事閱讀 40,110評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡赤嚼,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出顺又,到底是詐尸還是另有隱情更卒,我是刑警寧澤,帶...
    沈念sama閱讀 35,792評(píng)論 5 346
  • 正文 年R本政府宣布稚照,位于F島的核電站蹂空,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏果录。R本人自食惡果不足惜上枕,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,455評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望弱恒。 院中可真熱鬧辨萍,春花似錦返弹、人聲如沸锈玉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,003評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)拉背。三九已至师崎,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間椅棺,已是汗流浹背犁罩。 一陣腳步聲響...
    開封第一講書人閱讀 33,130評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留土陪,地道東北人昼汗。 一個(gè)月前我還...
    沈念sama閱讀 48,348評(píng)論 3 373
  • 正文 我出身青樓肴熏,卻偏偏與公主長(zhǎng)得像鬼雀,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蛙吏,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,047評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容