简单的数组建树+中序遍历
#include <bits/stdc++.h> using namespace std; struct TreeNode { char data; TreeNode* left; TreeNode* right; }; TreeNode* BuileTree(int& i, char arr[]) { char c = arr[i]; i++; if (c == '#') { return NULL; } else { TreeNode* pNew = new TreeNode; pNew->data = c; pNew->left = BuileTree(i, arr); pNew->right = BuileTree(i, arr); return pNew; } } void inorder(TreeNode* pRoot) { if (pRoot == NULL) { return; } inorder(pRoot->left); printf("%c ", pRoot->data); inorder(pRoot->right); } int main() { char arr[101] = {0}; while (scanf("%s", arr) != EOF) { int i = 0; TreeNode* proot = BuileTree(i, arr); inorder(proot); printf("\n"); } return 0; }