//遞迴實現前序遍歷
public static void preorderrecur(node head)
system.out.println(head);
preorderrecur(head.left);
preorderrecur(head.right);
}
//非遞迴實現前序遍歷
public static void preorderunrecur(node head)
stackstack = new stack<>();
stack.push(head);
while (!stack.isempty())
if (head.right != null)
}}
//遞迴實現中序遍歷
public static void inorderrecur(node head)
inorderrecur(head.left);
system.out.println(head);
inorderrecur(head.right);
}
//非遞迴實現中序遍歷
public static void inorderunrecur(node head)
stackstack = new stack<>();
while (!stack.isempty() || head != null) else
}}
//遞迴實現後序遍歷
public static void posorderrecur(node head)
posorderrecur(head.left);
posorderrecur(head.right);
system.out.println(head);
}
//非遞迴實現後序遍歷
public static void posorderunrecur(node head)
//若按先左孩子進棧,再右孩子進棧,出棧的次序是頭右左,所以再用乙個棧就可實現左右頭後序遍歷
stackstack = new stack<>();
stackprintstack = new stack<>();
stack.push(head);
while (!stack.isempty())
if (head.right != null)
}while (!printstack.isempty())
}
資料結構 二叉樹的遍歷(前 中 後序遍歷)
改編自 挑戰程式設計競賽2 目標 用三種遍歷方式列印出樹 由於我想偷懶易於理解我就不注釋了 輸入樣例 90 1 4 1 2 3 2 1 1 3 1 1 4 5 8 5 6 7 6 1 1 7 1 1 8 1 1 輸出樣例 前序遍歷的結果是 0 1 2 3 4 5 6 7 8 中序遍歷的結果是 2 1...
資料結構 二叉樹的前中後序遍歷
在電腦科學裡,樹的遍歷是指通過一種方法按照一定的順序訪問一顆樹的過程。對於二叉樹,樹的遍歷通常有四種 先序遍歷 中序遍歷 後序遍歷 廣度優先遍歷。前三種亦統稱深度優先遍歷 對於多叉樹,樹的遍歷通常有兩種 深度優先遍歷 廣度優先遍歷。在學習前面三種深度優先遍歷之前,很有必要了解它們之間到底是怎麼遍歷的...
二叉樹的前中後序遍歷
秋招記錄 對一棵二叉樹進行遍歷,我們可以採取3種順序進行遍歷,分別是前序遍歷 中序遍歷和後序遍歷。這三種方式是以訪問父節點的順序來進行命名的。假設父節點是n,左節點是l,右節點是r,那麼對應的訪問遍歷順序如下 前序遍歷 中左右 n l r 中序遍歷 左中右 l n r 後序遍歷 左右中 l r n ...