精華區beta C_and_CPP 關於我們 聯絡資訊
※ 引述《[email protected] (愛睡了)》之銘言: : 要怎麼寫比較好呢.... : 是不是用遞回寫比較好.... : 請告訴我好嗎...謝啦... 如你的 tree 為 binary tree 且是以 array 來 present 的話, 如 N 為 node 個數,則可由 [log2(N)] 求得。 如 tree 以 linked-list 來 present 則一時也只想到用 recursive。 龍龍 -- 你是一位聰明人嗎?如果是,你該記住,你的聰明是跟那些人學來的, 然後在適當的地點,適當的時間,輕輕的對那人說:這是你教我的。 聲音要輕,而且只告訴他一個人。 摘錄自"牧羊少年奇幻之旅" -- ※ 發信站: 批踢踢實業坊(ptt.twbbs.org) ◆ From: DickG.m5.ntu.ed > -------------------------------------------------------------------------- < 發信人: [email protected] (東京紅色情人夢-中島廣香), 看板: C_and_CPP 標 題: Re: 怎麼找樹的height呀?? 發信站: 程式設計樂園(CSZone) (Tue Apr 13 10:46:04 1999) 轉信站: Ptt!CSZoneNews!CSZone ※ 引述《[email protected] (龍龍)》之銘言: : ※ 引述《[email protected] (愛睡了)》之銘言: : : 要怎麼寫比較好呢.... : : 是不是用遞回寫比較好.... : : 請告訴我好嗎...謝啦... : 如你的 tree 為 binary tree 且是以 array 來 present 的話, : 如 N 為 node 個數,則可由 [log2(N)] 求得。 呃, 這樣說好像也不太對..:-) 要是這顆樹不是 complete 或是 full 呢? > -------------------------------------------------------------------------- < 發信人: [email protected] (貓兒), 看板: C_and_CPP 標 題: Re: 怎麼找樹的height呀?? 發信站: 程式設計樂園(CSZone) (Tue Apr 13 11:06:41 1999) 轉信站: Ptt!CSZoneNews!CSZone ※ 引述《[email protected] (愛睡了)》之銘言: : 要怎麼寫比較好呢.... : 是不是用遞回寫比較好.... : 請告訴我好嗎...謝啦... 如果你的樹只有 data, pointer 的欄位, 那麼就利用 bfs, dfs 來搜尋整棵樹, 並且記錄樹的高度. 或者, 在 tree node 中加入 height 欄位, 記錄每個 node 的 高度, 在插入或刪除 node 時就需要更新此欄位, 因此會增加額 外的工作. > -------------------------------------------------------------------------- < 作者: DickG (龍龍) 看板: C_and_CPP 標題: Re: 怎麼找樹的height呀?? 時間: Tue Apr 13 13:56:09 1999 ※ 引述《[email protected] (東京紅色情人夢-中島廣香)》之銘言: : ※ 引述《[email protected] (龍龍)》之銘言: : : 如你的 tree 為 binary tree 且是以 array 來 present 的話, : : 如 N 為 node 個數,則可由 [log2(N)] 求得。 : 呃, 這樣說好像也不太對..:-) 要是這顆樹不是 complete 或是 : full 呢? 嗯...ㄑㄧ\ 說得很有道理... 我的前題是該加個 complete binary tree ^^ 龍龍 > -------------------------------------------------------------------------- < 發信人: [email protected] (貓兒), 看板: C_and_CPP 標 題: Re: 怎麼找樹的height呀?? 發信站: 程式設計樂園(CSZone) (Wed Apr 14 00:03:47 1999) 轉信站: Ptt!CSZoneNews!CSZone ※ 引述《[email protected] (愛睡了)》之銘言: : ※ 引述《[email protected] (貓兒)》之銘言: : : 如果你的樹只有 data, pointer 的欄位, 那麼就利用 bfs, dfs : : 來搜尋整棵樹, 並且記錄樹的高度. : : 或者, 在 tree node 中加入 height 欄位, 記錄每個 node 的 : : 高度, 在插入或刪除 node 時就需要更新此欄位, 因此會增加額 : : 外的工作. : bfs和dfs是搜尋用的沒錯.... : 可是怎麼用在記錄tree的高度呀.... : 那不就要多加一個欄位記錄樹的高度呀.... : 可不可以寫清楚一點....謝啦....:) 1. 進行 bfs, dfs 時, 以一個變數記錄目前的高度, 再以另外一個 變數來記錄樹的最大高度值, 當目前高度超過最大值時, 就更新 最大高度值. 2. 加入一個欄位, 在進行 bfs, dfs 時更新每個 node 的高度值, 並記錄出現過的最大高度值. -- 貓眼看天下 ...... A.T. -- ※ Origin: 程式設計樂園 ◆ From: Clark.cs.nthu.edu.tw