91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

廣度優先遍歷與二叉樹的什么遍歷相似

發布時間:2020-07-27 17:26:11 來源:億速云 閱讀:680 作者:Leah 欄目:互聯網科技

本篇文章給大家分享的是有關廣度優先遍歷與二叉樹的什么遍歷相似,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

廣度優先遍歷類似于二叉樹的層次遍歷。廣度優先搜索是從根結點開始沿著樹的寬度搜索遍歷,也就是按層次的去遍歷;從上往下對每一層依次訪問,在每一層中,從左往右(也可以從右往左)訪問結點,訪問完一層就進入下一層,直到沒有結點可以訪問為止。

廣度優先搜索(Breadth First Search)(其實是二叉樹的層次遍歷),又叫寬度優先搜索或橫向優先搜索,是從根結點開始沿著樹的寬度搜索遍歷。

從上往下對每一層依次訪問,在每一層中,從左往右(也可以從右往左)訪問結點,訪問完一層就進入下一層,直到沒有結點可以訪問為止。

廣度優先遍歷與二叉樹的什么遍歷相似

上面二叉樹的遍歷順序為:ABCDEFG. 可以利用隊列實現廣度優先搜索。

廣度優先搜索算法:

保留全部結點,占用空間大; 無回溯操作(即無入棧、出棧操作),運行速度快。

廣度優先搜索算法,一般需存儲產生的所有結點,占用的存儲空間要比深度優先搜索大得多,因此,程序設計中,必須考慮溢出和節省內存空間的問題。但廣度優先搜索法一般無回溯操作,即入棧和出棧的操作,所以運行速度比深度優先搜索要快些。

示例:

廣度優先遍歷與二叉樹的什么遍歷相似

其過程檢驗來說是對每一層節點依次訪問,訪問完一層進入下一層,而且每個節點只能訪問一次。對于上面的例子來說,廣度優先遍歷的 結果是:A,B,C,D,E,F,G,H,I(假設每層節點從左到右訪問)。

廣度優先遍歷各個節點,需要使用到隊列(Queue)這種數據結構,queue的特點是先進先出,其實也可以使用雙端隊列,區別就是雙端隊列首位都可以插入和彈出節點。整個遍歷過程如下:

首先將A節點插入隊列中,queue(A);

將A節點彈出,同時將A的子節點B,C插入隊列中,此時B在隊列首,C在隊列尾部,queue(B,C);

將B節點彈出,同時將B的子節點D,E插入隊列中,此時C在隊列首,E在隊列尾部,queue(C,D,E);

將C節點彈出,同時將C的子節點F,G,H插入隊列中,此時D在隊列首,H在隊列尾部,queue(D,E,F,G,H);

將D節點彈出,D沒有子節點,此時E在隊列首,H在隊列尾部,queue(E,F,G,H);

...依次往下,最終遍歷完成

Java代碼大概如下:

public class TreeNode {
    int val = 0;
    TreeNode left = null;
    TreeNode right = null;

    public TreeNode(int val) {
        this.val = val;
    }
}
public class Solution {
    public ArrayList<Integer> wide(TreeNode root) {
        ArrayList<Integer> lists=new ArrayList<Integer>();
        if(root==null)
            return lists;
        Queue<TreeNode> queue=new LinkedList<TreeNode>();
        queue.offer(root);
        while(!queue.isEmpty()){
            TreeNode node = queue.poll();
            if(node.left!=null){
                queue.offer(node.left);
            }
            if(node.right!=null){
                queue.offer(node.right);
            }
            lists.add(node.val);
		}
        return lists;
    }
}

以上就是廣度優先遍歷與二叉樹的什么遍歷相似,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

云和县| 屏东县| 泰兴市| 桑日县| 株洲市| 托克托县| 齐齐哈尔市| 九寨沟县| 巴里| 晋州市| 莱阳市| 鹰潭市| 景宁| 海口市| 双鸭山市| 富锦市| 易门县| 新田县| 万年县| 信丰县| 鄱阳县| 施甸县| 吉木萨尔县| 莎车县| 吉安县| 个旧市| 南郑县| 天镇县| 绩溪县| 太和县| 景德镇市| 青铜峡市| 正蓝旗| 苏尼特左旗| 阳信县| 隆回县| 宜都市| 仪征市| 秦安县| 老河口市| 阳城县|