二叉樹建立及前序遍歷

看了小甲魚的視頻簡直收益多多,完全理解了二叉樹的建立及遍歷代碼,遞歸的能力太強了,以後一定要多多利用遞歸呀!!

#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>

using namespace std;

typedef struct node
{
    char date;
    struct node *lchild;
    struct node *rchild;
} BiTNode, *BiTree;

//創建二叉樹;
void createBiTree(BiTree &T)
{
    char c;
    scanf("%c", &c);
    if(' ' == c)
        T = NULL;
    else
    {
        T = (BiTNode *)malloc(sizeof(BiTNode));
        T -> date = c;
        createBiTree(T->lchild);
        createBiTree(T->rchild);
    }
}

//訪問二叉樹結點;
void visit(char c, int level)
{
    printf("%c 位於第 %d層\n", c, level);
}


//前序遍歷二叉樹,並輸出每個節點位於第幾層;
void preOrderTraverse(BiTree T, int level)
{
    if(T)
    {
        visit(T->date, level);
        preOrderTraverse(T->lchild, level+1);
        preOrderTraverse(T->rchild, level+1);
    }
}

int main()
{
    int level = 1;
    BiTree T = NULL;

    createBiTree(T);
    preOrderTraverse(T, level);
    return 0;
}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章