看了小甲魚的視頻簡直收益多多,完全理解了二叉樹的建立及遍歷代碼,遞歸的能力太強了,以後一定要多多利用遞歸呀!!
#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;
}