C++ 二叉樹程式設計實戰之遞迴遍歷
阿新 • • 發佈:2018-12-10
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <string.h> //二叉樹節點 typedef struct BINARYNODE { char ch; struct BINARYNODE *lchild; struct BINARYNODE *rchild; }BinaryNode; void Recursion(BinaryNode *root) { if (root == NULL) { return; } //再遍歷左子樹 Recursion(root->lchild); //再遍歷右子樹 Recursion(root->rchild); //先訪問根節點 printf("%c", root->ch); } void CreateBinaryTree() { BinaryNode node1 = { 'A',NULL,NULL }; BinaryNode node2 = { 'B',NULL,NULL }; BinaryNode node3 = { 'C',NULL,NULL }; BinaryNode node4 = { 'D',NULL,NULL }; BinaryNode node5 = { 'E',NULL,NULL }; BinaryNode node6 = { 'F',NULL,NULL }; BinaryNode node7 = { 'G',NULL,NULL }; BinaryNode node8 = { 'H',NULL,NULL }; //建立結點關係 node1.lchild = &node2; node1.rchild = &node6; node2.rchild = &node3; node3.lchild = &node4; node3.rchild = &node5; node6.rchild = &node7; node7.lchild = &node8; //遞迴遍歷 Recursion(&node1); printf("\n"); } int main(void) { CreateBinaryTree(); return 0; }