Re: [問題] 二元樹建立問題
※ 引述《darkcookies (D-GRAY MAN)》之銘言:
: 開發平台(Platform): GCC
: 額外使用到的函數庫(Library Used):
: 問題(Question):請問我有一個輸入是
: 5 1 1 4 1 0 8 1 1 11 1 1 13 0 0 4 0 1 7 0 0 2 0 0 1 0 0
: 樹長成
: 5
: / \
: 4 8
: / / \
: 11 13 4
: / \ \
: 7 2 1
T代表現在的二元樹,Q代表現在佇列的狀態
佇列的第一個元素代表下一個節點要接的位置(例如5L表示要接在5這個節點的左邊)
每次加入一個節點之後,就把它的子樹位置加到佇列的最後面
輸入:(每3個數字代表一個節點)
5 1 1 4 1 0 8 1 1 11 1 1 13 0 0 4 0 1 7 0 0 2 0 0 1 0 0
Step 1:
5 1 1 ,根節點. 加入5L,5R至佇列
T:
5
Q: 5L 5R
--
Step 2:
4 1 0 ,加在5的左邊. 加入4L至佇列
T:
5
/
4
Q: 5R 4L
--
Step 3:
8 1 1 ,加在5的右邊. 加入8L,8R至佇列
T:
5
/ \
4 8
Q: 4L 8L 8R
--
Step 4:
11 1 1 ,加在4的左邊. 加入11L,11R至佇列
T:
5
/ \
4 8
/
11
Q: 8L 8R 11L 11R
--
Step 5:
13 0 0 ,加在8的左邊
T:
5
/ \
4 8
/ /
11 13
Q: 8R 11L 11R
--
Step 6:
4 0 1 ,加在8的右邊. 加入4R至佇列
T:
5
/ \
4 8
/ / \
11 13 4
Q: 11L 11R 4R
--
Step 7:
7 0 0 ,加在11的左邊
T:
5
/ \
4 8
/ / \
11 13 4
/
7
Q: 11R 4R
--
Step 8:
2 0 0 ,加在11的右邊
T:
5
/ \
4 8
/ / \
11 13 4
/ \
7 2
Q: 4R
--
Step 9:
1 0 0 ,加在4的右邊
T:
5
/ \
4 8
/ / \
11 13 4
/ \ \
7 2 1
Q: (NULL)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.135.134.15
推
01/31 01:30, , 1F
01/31 01:30, 1F
→
01/31 01:31, , 2F
01/31 01:31, 2F
→
01/31 03:43, , 3F
01/31 03:43, 3F
→
01/31 03:45, , 4F
01/31 03:45, 4F
→
01/31 09:50, , 5F
01/31 09:50, 5F
→
01/31 15:46, , 6F
01/31 15:46, 6F
→
01/31 16:40, , 7F
01/31 16:40, 7F
→
01/31 18:18, , 8F
01/31 18:18, 8F
→
01/31 18:31, , 9F
01/31 18:31, 9F
→
01/31 19:54, , 10F
01/31 19:54, 10F
→
02/01 00:10, , 11F
02/01 00:10, 11F
推
02/01 22:40, , 12F
02/01 22:40, 12F
討論串 (同標題文章)