#include \n#include \nusing namespace std;\n\n// 定义二叉树结点\nstruct TreeNode {\n char val;\n TreeNode* left;\n TreeNode* right;\n TreeNode(char x) : val(x), left(NULL), right(NULL) {}\n};\n\n// 将按顺序方式存储在数组中的二叉树转换为二叉链表形式\nTreeNode* arrayToBinaryTree(char arr[], int n) {\n if (n == 0) {\n return NULL;\n }\n\n TreeNode* root = new TreeNode(arr[0]);\n queue<TreeNode*> q;\n q.push(root);\n\n int i = 1;\n while (!q.empty() && i < n) {\n TreeNode* curr = q.front();\n q.pop();\n\n if (arr[i] != '.') {\n curr->left = new TreeNode(arr[i]);\n q.push(curr->left);\n }\n i++;\n\n if (i < n && arr[i] != '.') {\n curr->right = new TreeNode(arr[i]);\n q.push(curr->right);\n }\n i++;\n }\n\n return root;\n}\n\n// 打印二叉链表形式的二叉树\nvoid printBinaryTree(TreeNode* root) {\n if (root == NULL) {\n return;\n }\n\n cout << root->val << " ";\n printBinaryTree(root->left);\n printBinaryTree(root->right);\n}\n\nint main() {\n char arr[] = {'A', 'B', 'C', 'D', '.', 'E', 'F'};\n int n = sizeof(arr) / sizeof(arr[0]);\n\n TreeNode* root = arrayToBinaryTree(arr, n);\n printBinaryTree(root);\n\n return 0;\n}