#24二叉树遍历#

二叉树遍历

1.题目链接

链接

2.思路

建立二叉树

动态开辟 递归遍历

中序遍历

左子树 根 右子树的顺序递归

3.实现

#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>

typedef struct TreeNode
{
	struct TreeNode* left;
	struct TreeNode* right;
	char val;
}TNode;

TNode* CreateTree(char* a, int* pi)
{
	if (a[*pi] == '#')
	{
		++(*pi);
		return NULL;
	}
	TNode* root = (TNode*)malloc(sizeof(TNode));
	if (root == NULL)
	{
		printf("malloc fail\n");
		exit(-1);
	}
	root->val = a[*pi];
	++(*pi);
	root->left = CreateTree(a, pi);
	root->right = CreateTree(a, pi);
	return root;
}

void InOrder(TNode* root)
{
	if (root == NULL)
		return;
	InOrder(root->left);
	printf("%c ", root->val);
	InOrder(root->right);
}

int main()
{
	char str[100];
	scanf("%s", str);
	int i = 0;
	TNode* root = CreateTree(str, &i);
	InOrder(root);
	return 0;
}

4.运行结果

 #24二叉树遍历#完

猜你喜欢

转载自blog.csdn.net/szh0331/article/details/128772030
今日推荐