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

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
樓主: emacsnw
打印 上一主題 下一主題

一個關(guān)于單向鏈表的面試題。 [復(fù)制鏈接]

論壇徽章:
0
61 [報告]
發(fā)表于 2007-02-06 14:38 |只看該作者
原帖由 emacsnw 于 2/6/07 04:27 發(fā)表
想了一下,似乎下面的算法可以:O(1)空間,O(n)時間。
兩個額外指針p1, p2,開始都指向頭S。設(shè)需要找到的循環(huán)部分第一個結(jié)點的位置為A,S到A的距離為x (x可能為0),鏈表的循環(huán)部分長度為y (y > 0)。

算法 ...


方法是對的, 問題有點點

z應(yīng)該是p1從A到在B和p2相遇所走過的路程, 才能用那個方程

論壇徽章:
0
62 [報告]
發(fā)表于 2007-02-06 16:30 |只看該作者
原帖由 ArXoR 于 2007-2-5 22:38 發(fā)表


方法是對的, 問題有點點

z應(yīng)該是p1從A到在B和p2相遇所走過的路程, 才能用那個方程


p1應(yīng)該是可以保證沒有走完這個環(huán)的。

論壇徽章:
0
63 [報告]
發(fā)表于 2007-02-06 16:46 |只看該作者
不能保證吧
如果環(huán)特別小呢

論壇徽章:
0
64 [報告]
發(fā)表于 2007-02-06 16:51 |只看該作者
是我想錯了
p1是不能走完哪個環(huán)

論壇徽章:
0
65 [報告]
發(fā)表于 2007-02-06 19:08 |只看該作者
原帖由 emacsnw 于 2/6/07 16:30 發(fā)表


p1應(yīng)該是可以保證沒有走完這個環(huán)的。


是可以證明z<=y, 但是敘述上應(yīng)該嚴謹... ^_^

論壇徽章:
0
66 [報告]
發(fā)表于 2007-02-08 17:34 |只看該作者
算出循環(huán)鏈的長度,總長度-循環(huán)鏈長度。

論壇徽章:
0
67 [報告]
發(fā)表于 2007-02-09 08:50 |只看該作者
訪問的接點做個標(biāo)記,如果發(fā)現(xiàn)在訪問后面的節(jié)點出現(xiàn)標(biāo)記,就知道從什么地方循環(huán)了

論壇徽章:
0
68 [報告]
發(fā)表于 2007-04-27 22:28 |只看該作者

許多人犯了一個嚴重的錯誤

許多人犯了一個嚴重的錯誤,在不知道鏈表的確切個數(shù)的情況下,
是無法進行循環(huán)或遞歸的操作的,這樣去求逆轉(zhuǎn)鏈表或摘取節(jié)點,
會因為無法確定循環(huán)的結(jié)束條件,從而陷入死循環(huán)!

以下是我的解答:

struct node* find_cycleNode(struct node *list_x)
{
     struct node *p0, *p1;
     if (list_x==list_x->next)
        return(list_x);
     p1=list_x->next;
     while (1)  {
        for(p0=list_x; p0!=p1; p0=p0->next)
           if (p0==p1->next)
              return(p0);
        p1=p1->next;
     }
}

算法的時間復(fù)雜度:O(n^2),  空間復(fù)雜度:O(1)

[ 本帖最后由 dixin01 于 2007-4-28 00:11 編輯 ]

論壇徽章:
0
69 [報告]
發(fā)表于 2007-04-28 02:24 |只看該作者
原帖由 dixin01 于 2007-4-27 06:28 發(fā)表
許多人犯了一個嚴重的錯誤,在不知道鏈表的確切個數(shù)的情況下,
是無法進行循環(huán)或遞歸的操作的,這樣去求逆轉(zhuǎn)鏈表或摘取節(jié)點,
會因為無法確定循環(huán)的結(jié)束條件,從而陷入死循環(huán)!

以下是我的解答:

struct  ...


兩個步進不一樣(1和2)的指針相等了就中止,怎么會死循環(huán)。

論壇徽章:
0
70 [報告]
發(fā)表于 2007-04-28 09:27 |只看該作者
原帖由 emacsnw 于 2007-4-28 02:24 發(fā)表

兩個步進不一樣(1和2)的指針相等了就中止,怎么會死循環(huán)。



你的算法是正確的,比我的效率高,時間復(fù)雜度為O(n),我說的是其他人的。
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP