跳至主要内容

📄 Breadth First Search(BFS)

Question Description

廣度優先搜尋演算法

請嘗試使用廣度優先搜尋法來遊歷英格蘭七國時代的城鎮

const heptarchyTree = {
value: 'England', // 英格蘭
children: [
{
value: 'Northumbria', // 諾森布里亞王國
children: [
{
value: 'Bamburgh', // 班布勒城
children: [
{
value: 'Yeavering', // 耶瓦林莊園
children: [],
},
],
},
{
value: 'Lindisfarne', // 林迪斯法恩
children: [],
},
],
},
{
value: 'Mercia', // 麥西亞王國
children: [
{
value: 'Tamworth', // 塔姆沃斯
children: [],
},
{
value: 'Repton', // 雷普頓
children: [],
},
],
},
],
};

function travelThroughHeptarchy(heptarchyTree) {
const scroll = []; // 使用羊皮紙紀錄訪問各地的順序
scroll.push(heptarchyTree); // 將英格蘭作為起點加入羊皮紙

// 當羊皮紙上還有城鎮時,繼續遊歷
while (scroll.length > 0) {
const kingdom = scroll.shift(); // 從羊皮紙上取下一個要訪問的王國或城鎮
console.log(kingdom.value); // 記錄訪問的王國或城鎮名稱

// 遊歷當前王國或城鎮的所有子區域,並將它們加入羊皮紙
for (const child of kingdom.children) {
scroll.push(child);
}
}
}

travelThroughHeptarchy(heptarchyTree); // 開始遊歷英格蘭七國時代的城鎮