顯示廣告
隱藏 ✕
看板 TL
作者 TL (踢欸樓)
標題 [筆記] 怎麼找樹的height呀??
時間 2013年01月27日 Sun. PM 06:41:51


看板 C_and_CPP
作者 DickG (龍龍)
標題 Re: 怎麼找樹的height呀??
時間 Tue Apr 13 02:09:44 1999


※ 引述《tucson.bbs@bbs.ee.nsysu.edu.tw (愛睡了)》之銘言:
:        要怎麼寫比較好呢....
:        是不是用遞回寫比較好....
:        請告訴我好嗎...謝啦...

如你的 tree 為 binary tree 且是以 array 來 present 的話,

如 N 為 node 個數,則可由 [log2(N)] 求得。

如 tree 以 linked-list 來 present 則一時也只想到用 recursive。

龍龍

--

你是一位聰明人嗎?如果是,你該記住,你的聰明是跟那些人學來的,
然後在適當的地點,適當的時間,輕輕的對那人說:這是你教我的。
聲音要輕,而且只告訴他一個人。
                                摘錄自"牧羊少年奇幻之旅"

--
--
※ 發信站: 批踢踢實業坊(ptt.twbbs.org)
◆ From: DickG.m5.ntu.ed

> -------------------------------------------------------------------------- <

發信人: qing.bbs@cszone.cc.ntu.edu.tw (東京紅色情人夢-中島廣香), 看板: C_and_CPP
標  題: Re: 怎麼找樹的height呀??
發信站: 程式設計樂園(CSZone) (Tue Apr 13 10:46:04 1999)
轉信站: Ptt!CSZoneNews!CSZone

※ 引述《DickG.bbs@ptt.csie.ntu.edu.tw (龍龍)》之銘言:
: ※ 引述《tucson.bbs@bbs.ee.nsysu.edu.tw (愛睡了)》之銘言:
: :        要怎麼寫比較好呢....
: :        是不是用遞回寫比較好....
: :        請告訴我好嗎...謝啦...
: 如你的 tree 為 binary tree 且是以 array 來 present 的話,
: 如 N 為 node 個數,則可由 [log2(N)] 求得。

        呃, 這樣說好像也不太對..:-) 要是這顆樹不是 complete 或是
        full 呢?



> -------------------------------------------------------------------------- <

發信人: AT.bbs@cszone.cc.ntu.edu.tw (貓兒), 看板: C_and_CPP
標  題: Re: 怎麼找樹的height呀??
發信站: 程式設計樂園(CSZone) (Tue Apr 13 11:06:41 1999)
轉信站: Ptt!CSZoneNews!CSZone

※ 引述《tucson.bbs@bbs.ee.nsysu.edu.tw (愛睡了)》之銘言:
:        要怎麼寫比較好呢....
:        是不是用遞回寫比較好....
:        請告訴我好嗎...謝啦...

  如果你的樹只有 data, pointer 的欄位, 那麼就利用 bfs, dfs
  來搜尋整棵樹, 並且記錄樹的高度.

  或者, 在 tree node 中加入 height 欄位, 記錄每個 node 的
  高度, 在插入或刪除 node 時就需要更新此欄位, 因此會增加額
  外的工作.


> -------------------------------------------------------------------------- <

看板 C_and_CPP
作者 DickG (龍龍)
標題 Re: 怎麼找樹的height呀??
時間 Tue Apr 13 13:56:09 1999


※ 引述《qing.bbs@cszone.cc.ntu.edu.tw (東京紅色情人夢-中島廣香)》之銘言:
: ※ 引述《DickG.bbs@ptt.csie.ntu.edu.tw (龍龍)》之銘言:
: : 如你的 tree 為 binary tree 且是以 array 來 present 的話,
: : 如 N 為 node 個數,則可由 [log2(N)] 求得。
:         呃, 這樣說好像也不太對..:-) 要是這顆樹不是 complete 或是
:         full 呢?
嗯...ㄑㄧ\ 說得很有道理...
我的前題是該加個 complete binary tree ^^

龍龍


> -------------------------------------------------------------------------- <

發信人: AT.bbs@cszone.cc.ntu.edu.tw (貓兒), 看板: C_and_CPP
標  題: Re: 怎麼找樹的height呀??
發信站: 程式設計樂園(CSZone) (Wed Apr 14 00:03:47 1999)
轉信站: Ptt!CSZoneNews!CSZone

※ 引述《tucson.bbs@bbs.ee.nsysu.edu.tw (愛睡了)》之銘言:
: ※ 引述《AT.bbs@cszone.cc.ntu.edu.tw (貓兒)》之銘言:
: :   如果你的樹只有 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

--
Shaken, Not Stirred.
--
※ 作者: TL 時間: 2013-01-27 18:41:51
※ 看板: TL 文章推薦值: 0 目前人氣: 0 累積人氣: 26 
分享網址: 複製 已複製
guest
x)推文 r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇