二叉树遍历
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二叉树遍历#完