2016-04-25 24 views
0

我想實現BFS在Java二進制樹插入(完全二叉樹),如何與樹有關的隊列中BFS

我讀的邏輯是,它採用了隊列中插入樹

隊列是保持項目的順序和樹存儲在左和右節點

對於防爆的項目:

隊列-1 2 3

樹:

根 - > 1

2   3 

問題的執行情況:

以下是我的疑惑

。如何保持指針,一個用於隊列,另一個用於樹,或者使用同一個。

。一旦左邊的&右邊的小孩被填滿了,那麼我們是否應該從隊列中取出元素。

例如:元素2和3一旦添加到1,那麼是否1應該出隊。

。如果它已經出隊,那麼如何在填充時迭代樹中的元素?

我們是否需要使用隊列中的元素並在樹中查找元素,然後插入?

我不清楚在二進制樹中隊列的幫助下如何插入。

+0

tanx @redFIVE我試過了,但是他們使用Java Collections的Queue,我想在不使用Java Collections的情況下從頭開始實現。您可以給出提示! – Renigunda

回答

0

你的方法似乎是正確的。我想在這裏提到幾點。

  1. 只有當插入兩個子節點時才從隊列中排隊節點。
  2. 爲簡單起見,在隊列中插入節點值而不是整個節點。
  3. 保留hashmap與節點值和實際節點之間的映射。

用上面的方法,你只需要保留一個隊列的指針。