• <noscript id="e0iig"><kbd id="e0iig"></kbd></noscript>
  • <td id="e0iig"></td>
  • <option id="e0iig"></option>
  • <noscript id="e0iig"><source id="e0iig"></source></noscript>
  • 二叉樹的生成與遍歷

    標簽: 二叉樹  遍歷

    #include <stdio.h>
    #include <stdlib.h>
    
    typedef char ElemType;
    
    typedef struct BiTNode{
        char data;//數據域 
        struct BiTNode *lchild,*rchild;//左,右孩子 
    }BiTNode,*BiTree;
    
    //建立二叉樹,前序遍歷 
    CreateBiTree(BiTree *T){
        char c;
        scanf("%c",&c);
        /*空格表示空指針*/
        if(' '== c){
            *T = NULL;
        }else{
            *T =(BiTNode *) malloc(sizeof(BiTNode));
            (*T)->data = c;
            CreateBiTree(&(*T)->lchild);
            CreateBiTree(&(*T)->rchild);
        }
    } 
    
    visit(char c, int level){
        printf("%c 位于第%d 層\n",c,level);
    }
    //前序遍歷二叉樹
    PreOrderTraver(BiTree T, int level){
        if(T){
            visit(T->data,level);
            PreOrderTraver(T->lchild, level + 1);
            PreOrderTraver(T->rchild, level + 1);
        }
    } 
    int main(){
        int level = 1;//層數
        BiTree T = NULL;
        CreateBiTree(&T);
        PreOrderTraver(T,level);
    
        return 0;
    }

    這里寫圖片描述

    版權聲明:本文為yang10560原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
    本文鏈接:https://blog.csdn.net/yang10560/article/details/78567761

    智能推薦

    二叉樹的創建與遍歷

    二叉樹的創建 關于二叉樹的基礎知識: 數據結構 二叉樹 基礎 二叉樹的節點類 前序創建樹 二叉樹創建效果圖 二叉樹遍歷 前序遍歷: 若二叉樹為空就控操作返回,否則先訪問根結點,然后先前序遍歷左子樹,再前序遍歷右子樹 簡單點說就是先訪問根結點的值,再依次遍歷左側結點的值 左結點為空后進入右側結點,依舊先訪問右結點的左子結點 先序遍歷 A B D H empty empty empty E empty...

    二叉樹的建立與遍歷

    二叉樹的建立和遍歷只需注意遞歸函數的使用 代碼如下: 程序結果為下:...

    二叉樹的遍歷與重建

    重建二叉樹 這里介紹一下用先序-中序,后序-中序遍歷結果來構建二叉樹的過程。 什么是先序,后序,中序遍歷? 首先看一下如下的二叉樹結構。 各種遍歷的規則: 前序遍歷(根左右): 對訪問到的每個結點,先訪問根結點,然后是左結點,然后是右結點 中序遍歷(左根右): 對訪問到的每個結點,先訪問左結點,然后是根結點,然后是右結點 后序遍歷(左右根): 對訪問到的每個結點,先訪問左結點,然后是右結點,然后是...

    二叉樹的遞歸與迭代遍歷

    本文將針對二叉樹中幾種常見的遍歷方法進行介紹。 遍歷方式 前序遍歷 前序遍歷首先訪問根節點,然后遍歷左子樹,最后遍歷右子樹。 中序遍歷 中序遍歷是先遍歷左子樹,然后訪問根節點,然后遍歷右子樹。 后序遍歷 后序遍歷是先遍歷左子樹,然后遍歷右子樹,最后訪問樹的根節點。 遞歸實現 遞歸實現二叉樹的遍歷是非常簡單的,其核心就是 深度優先搜索(DFS) 算法。 由于比較簡單,三種遍歷方式的實現代碼只是 深度...

    線索二叉樹的建立與遍歷

    概述 1,什么是線索二叉樹? 用自己的話說就是:原來我們求一棵二叉樹的前序、中序、后序序列的時候,都必須用到遞歸遍歷相應的二叉樹,否則也得借助棧等結構來記錄。這樣的話,如果我們想很快的找到某一個節點在某種序列下的前驅或后繼,每次都要遍歷,這顯然十分浪費時間。很自然,要是想避免這個重復工作,那么我們就需要把所有節點的前驅和后繼記錄下來,這樣每次查找相應的記錄就行了。于是就引出了—&mda...

    猜你喜歡

    二叉樹的儲存與遍歷

    二叉樹的兩種儲存:順序儲存 鏈式儲存 四種遍歷:層次遍歷 前序遍歷 中序遍歷 后序遍歷 1.儲存 - 順序儲存: 首先用零元素將二叉樹填充為完全二叉樹,再將填充后的二叉樹節點按層次順序的次序儲存到數組中 存儲后即為: 由于順序儲存效率低,所以一般不這樣進行二叉樹的儲存。 - 鏈式儲存: 二叉鏈表的結點結構為 建立二叉鏈表結點的函數 圖一應用舉例: 2.遍歷 - 層次遍歷: 層次遍歷顧名思義就是將結...

    二叉樹的建立與遍歷

    二叉樹的建立: 先序建立 按先序和中序建立: 按中序和后序建立:...

    JS遞歸與二叉樹的遍歷

    貌似大部分語言中的遞歸都差不多, 之所以在標題加JS是因為搜了下后感覺網上用js來描述這概念的不多, 簡單地說遞歸就是函數調用自己的過程。下面的栗子可以很直觀地展示遞歸的執行過程: 由這個栗子?可知:在遞歸調用語句前的語句執行是正常順序, 但是遞歸調用語句后的執行卻是相反的也就是說在遞歸還沒有完成時,函數的輸出結果暫時被掛起,因為一般在計算機中,是以棧的形式來實現遞歸,這個過程如下: 當遞歸完成時...

    數組刪除其中某個對象的方法

    數組刪除其中的對象或元素,在前端是比較常見的需求。 我現在比較常用的方法如下: 這種方法只適合刪除具有唯一標識的對象。 有沒有想要脫單的小伙伴,加入我們的脫單星球,認識更多優秀的小哥哥小姐姐 特此聲明,星球是免費的,但是創建星球的時候說是必須輸入金額,所以只能先私聊,我再加你免費加入!...

    圖床搭建以及圖床工具的使用

    為什么要用圖床和圖床工具? 比較下面三種md中的圖片url地址(均免費),你會使用哪一種? 選1?由于是本地路徑,文檔分享后給其他人打開后很可能顯示圖片加載失敗。 選2?雖然分享后可以顯示圖片,但能保證加載速度? 選3?我肯定選這種,即兼容2的瀏覽器訪問,又能保證訪問速度。 這樣就可以回答上面的問題了!保證瀏覽器訪問要用圖床,保證加載速度要用圖床工具,又不花錢想想就開心。 除此之外本篇博客還會講解...

    精品国产乱码久久久久久蜜桃不卡