亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: 數(shù)據(jù)結(jié)構(gòu)的的書說鏈表需要1個特殊的頭節(jié)點,但是std::list并沒有這么一個元素啊! [打印本頁]

作者: Ruckus優(yōu)科    時間: 2015-12-03 20:35
標(biāo)題: 數(shù)據(jù)結(jié)構(gòu)的的書說鏈表需要1個特殊的頭節(jié)點,但是std::list并沒有這么一個元素啊!
list需要一個所謂的頭節(jié)點,這個頭節(jié)點是鏈表的開始,它指向鏈表的第一個元素,本身不存儲任何東西。這個我能理解。
但是我看std::list并沒有一個這么所謂的頭節(jié)點。

而且,我覺得,知道第一個節(jié)點就能訪問鏈表了,這個所謂的頭節(jié)點好像就是一種多余的存在啊。
求解釋
作者: heguangwu    時間: 2015-12-03 21:36
c++ stl庫文件可讀性不是很好,但理論是不會錯的,雖然我也沒有看過代碼,所謂的頭結(jié)點其實就是一個指針而已
作者: alwaysR9    時間: 2015-12-03 21:38
頭節(jié)點存放或者不存放數(shù)據(jù)都可以,這看實現(xiàn)者自己的定義;
頭節(jié)點不存放數(shù)據(jù)可以令一些鏈表操作更方便,比如刪除連表中某個節(jié)點x:
假設(shè)頭節(jié)點不存放數(shù)據(jù):

p = head;
q = head->next;
while (q) {
        if (q == x) {
                 p->next = q->next;
                 delete x;
                 break;
        }
        p = q;
        q = q->next;
}
return;

如果頭節(jié)點存放數(shù)據(jù),那刪除節(jié)點的操作需要單獨處理頭節(jié)點:

if (x == head) {
        head = head->next;
        delete x;
        return;
}
p = head;
q = head->next;
while (q) {
        if (q == x) {
                 p->next = q->next;
                 delete x;
                 break;
        }
        p = q;
        q = q->next;
}
return;

不用糾結(jié)頭節(jié)點是否需要存數(shù)據(jù),按照自己的想法定義就好
作者: windoze    時間: 2015-12-03 22:14
你看的那是什么數(shù)據(jù)結(jié)構(gòu)的書。挎湵磉@種東西都搞得這么復(fù)雜?

你有個指針指向第一個節(jié)點不就行了,還要什么“特殊的頭結(jié)點”?
作者: dorodaloo    時間: 2015-12-06 14:13
本帖最后由 dorodaloo 于 2015-12-06 14:14 編輯
windoze 發(fā)表于 2015-12-03 22:14
你看的那是什么數(shù)據(jù)結(jié)構(gòu)的書啊?鏈表這種東西都搞得這么復(fù)雜?

你有個指針指向第一個節(jié)點不就行了,還要 ...


windoze
是不會錯的
作者: action08    時間: 2015-12-07 23:11
head本身是存在內(nèi)容的,要么為nil
也是個指針
作者: action08    時間: 2015-12-07 23:15
本帖最后由 action08 于 2015-12-07 23:16 編輯

代碼語義翻譯一下,鏈表的指針不是用pq
這里數(shù)據(jù)結(jié)構(gòu)推薦用n next,p previous,代碼看起來規(guī)范些,當(dāng)然編譯器無所謂
作者: windoze    時間: 2015-12-08 23:04
回復(fù) 7# action08

pn……猛一看還以為說三極管……
作者: hanxin83    時間: 2015-12-09 00:13
本帖最后由 hanxin83 于 2015-12-09 00:16 編輯

我也看過類似的說法, 只不過說是"可以有"而不是"需要".
有這個空的頭節(jié)點, 只是為了避免:
1. 插入節(jié)點, 每次都要額外判斷一下"鏈表是不是空".
2. 刪除節(jié)點, 每次都要額外判斷一下"是不是刪了頭節(jié)點".

沒有當(dāng)然也是很好的, 我應(yīng)屆生畢業(yè)出來的時候弄個空的頭節(jié)點還被人說是奇技淫巧呢~~~~




歡迎光臨 Chinaunix (http://72891.cn/) Powered by Discuz! X3.2