29 將 2 個分別由 m 個和 n 個節點所構成的雙向串列(doubly linked list)合併成 1 個雙向串列所花費的時間為:
(A)Q(1)
(B)Q(m+n)
(C)Q(m-n)
(D)Q(min(m, n))

答案:登入後查看
統計: A(59), B(40), C(22), D(35), E(0) #1208972

詳解 (共 6 筆)

#1850993
doubly linked list 做...
(共 30 字,隱藏中)
前往觀看
11
1
#4799813

雙向鏈結串列可以從頭遍歷到尾, 也可以從尾遍歷到頭

1
0
#4195669
其實我沒有想那麼複雜,我看到這題的時候只...
(共 102 字,隱藏中)
前往觀看
1
0
#4195091

Winx:

你都說挑頭或尾了,代表有一條是要挑尾巴,所以要先遍歷所有節點不是嗎?

或者兩個頭連接在一起,最後要返回新的head指標,一樣要遍歷短的那條串列找到尾巴


雙向鏈結串列有固定的head指標指向第一個節點,跟你舉例的繩子應該不一樣吧?

繩子像是佇列,你可以隨時取得front及rear節點,雙向鏈結串列要找到尾巴就要先遍歷所有節點一次(題目並沒有說是環狀雙向鏈結串列)


能不能用畫圖來說說你的方法可不可行?

如果是要真的寫成程式碼或演算法並進行雙向鏈結串列的合併

我認為都要遍歷短的那條串列才有可能正常執行


這是我想像中的雙向鏈結串列

5f2798ce952b3.jpg

0
0
#4099018

最佳解寫 "doubly linked list 做insert即可"

但我還是不懂,是否有人能說明?


我的思維邏輯是:此雙鏈非循環,因此必須找到短的一端的尾巴才能跟另一條雙鏈的頭串接上,故選(D)

但答案卻是(A),願聞其詳

0
0
#4195058
不用找什麼短的尾巴鏈結串列的合併很簡單,...
(共 114 字,隱藏中)
前往觀看
0
0