1. 程式人生 > >C++ 二叉樹程式設計實戰之遞迴遍歷

C++ 二叉樹程式設計實戰之遞迴遍歷

#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;
}