二叉樹遞迴遍歷—黑馬張濤講師
阿新 • • 發佈:2020-11-01
#include <stdio.h>
#include <stdlib.h>
typedef struct BinaryNode //二叉樹結點
{
//資料域
char data;
//指標域
struct BinaryNode * lChild; //左孩子
struct BinaryNode * rChild; //右孩子
}BiNode;
void recursion(BiNode * root) { //終止條件 if(NULL == root) { return; } //先序遍歷 printf("%c ", root->data); recursion(root->lChild); recursion(root->rChild); /* 中序遍歷 recursion(root->lChild); printf("%c ", root->data); recursion(root->rChild); */ /* 後序遍歷 recursion(root->lChild); recursion(root->rChild); printf("%c ", root->data); */ } void test01() { //對成員初始化 BiNode nodeA = {'A', NULL, NULL}; BiNode nodeB = {'B', NULL, NULL}; BiNode nodeC = {'C', NULL, NULL}; BiNode nodeD = {'D', NULL, NULL}; BiNode nodeE = {'E', NULL, NULL}; BiNode nodeF = {'F', NULL, NULL}; BiNode nodeG = {'G', NULL, NULL}; BiNode nodeH = {'H', NULL, NULL}; //建立關係 nodeA.lChild = &nodeB; nodeA.rChild = &nodeF; nodeB.rChild = &nodeC; nodeC.lChild = &nodeD; nodeC.rChild = &nodeE; nodeF.rChild = &nodeG; nodeG.lChild = &nodeH; //遞迴遍歷 recursion(&nodeA); //傳入樹根 }
int main()
{
test01();
return 0;
}