[討論] 單班 11.1

作者: suhorng ( )   2011-12-06 23:26:26
很多人滿分了,可是 Scoreboard 上也有一些 9 分的
今天跟一個同學研究的結論是記憶體動態開會比較理想
也就是說,若直接用陣列把資料個數開好的話,需要把空間開足夠
但是這題的測資很大,而且好像挺接近記憶體限制的邊界,
所以稍微開大一點很容易記憶體超過限制當掉,不容易抓到剛好的邊界
一種方法可以是先掃過一次得到正確的記憶體數量,再動態的開陣列
(動態記憶體或是 int a[n]; 之類的, 雖然後者不太正規, 但都可以通過測試)
我個人寫遞迴, 確實可過(Linux 上遞迴可以超深....), 也挺好寫的
另外要注意一下有可能輸入的本來就是空指標... 什麼也不用印
-
另外HW11還滿少人寫的...不過雖然這章教了二元搜尋樹、鏈結串列、...etc,
但是HW11不一定要把二元搜尋樹建出來XD 雖然我不知道老師出這題是希望看到
怎樣的解法...
輸入給的級別可能是個提示吧,舉例來說
r
____________/

s
/ \
/ \
a d
/ \ \
b c e

f
則 c、f 的級別分別是 4 和 5 (呃....好像一般比較常叫這個東西'深度'? depth)
此外, s 是從 r 走到 c、以及 r 走到 f 的路中最後一個共通的節點, 級別為 1
可以觀察到 c、f 之間的距離是 c 到 s 的距離 + s 到 f 的距離
而 c 到 s 的距離是 c 的級別減去 s 的級別,
f 到 s 的距離是 f 的級別減去 s 的級別.
作者: tiefblau (tiefblau)   2011-02-06 23:32:00
遞迴!
作者: suhorng ( )   2011-02-06 23:34:00
是唷XD 五行短短的很開心
作者: telgniw (易)   2011-02-07 08:06:00
九分通常是爆NULL然後書泓你幹麼講出來這題不用建treeQQ
作者: suhorng ( )   2011-02-07 08:54:00
qq因為輸入實在太奇怪了 一般二元搜尋樹應該會照順序給鍵值不給深度 但是這題卻是不照順序給鍵值然後給深度
作者: hasheesh (反正就是~超.好.吃!)   2011-02-07 11:48:00
HW11 judegegirl 網站上看不到題目 QQ
作者: bemyself (self)   2011-02-07 17:07:00
請問有沒有測資沒有深度為1的點? 或是有兩個以上?
作者: suhorng ( )   2011-02-07 17:40:00
不太懂意思, 根節點不就是唯一的深度為 1 的點嗎 ?

Links booklink

Contact Us: admin [ a t ] ucptt.com