廣度優先遍歷

2021-09-10 06:18:31 字數 697 閱讀 8464

def printnodeatlevel(treenode, level):

"""按層序遍歷輸出樹中某一層的值"""

if not treenode or level < 0 :

return 0

if level == 0:

print(treenode.val)

return 1

printnodeatlevel(treenode.lchild, level - 1)

printnodeatlevel(treenode.rchild, level - 1)

treenode為根節點,level為層數,例如找第3層的值,到根的左孩子,level - 1 ,繼續找這個節點的左孩子level - 1 ,level為0時輸出這個值,之後找這個節點的右孩子,level - 1,level為0時輸出,等等等

最後輸出最右的節點

先按層遍歷求出某一層的值,再利用求某一層的值的方法從根節點開始按層遍歷輸出樹的值

def printnodebylevel(treenode, depth):

"""已知樹的深度按層遍歷輸出樹的值"""

for level in range(depth):

printnodeatlevel(treenode, level)

廣度優先遍歷

廣度優先遍歷 breadth first search 類似於對樹的層序遍歷 遍歷規則為 首先訪問初始點vi,並將其標記為已訪問過,接著訪問vi的所有未被訪問過的鄰接點,其訪問次序可以任意,假定依次為vi1,vi2,vit,並均標記為已訪問過,然後在按照vi1,vi2,vit的次序,訪問每乙個頂點的...

廣度優先遍歷

還是上面那道題 深度遍歷一般是用遞迴,深度不斷增加,廣度搜尋一般用佇列這樣的形式儲存東西 include include using namespace std struct note int main book 51 51 int next 4 2 int head,tail int i,j,k,...

廣度優先遍歷

在廣度優先遍歷中,需要運用到佇列,在佇列中,才能更快更方便的實現將每乙個的可能性遍歷到。下面是一段廣搜的模板 include include include include include using namespace std struct node cur,nexxt queuequ int m...