文章

13

粉丝

0

获赞

106

访问

2.4k

头像
二叉树遍历 题解:回溯建树+递归遍历
P1161 清华大学/南京大学机试题
发布于2026年2月12日 12:38
阅读数 211

#include <iostream>
#include <string>
using namespace std;

struct Tnode {
    char data;
    Tnode *lchild, *rchild;
};

// 全局索引,用于遍历字符串
int index = 0;

// 根据先序遍历字符串构建二叉树
Tnode* createTree(const string& s) {
    if (index >= s.size()) return nullptr;

    if (s[index] == '#') {
        index++; // 跳过 '#'
        return nullptr;
    } else {
        Tnode* node = new Tnode();
        node->data = s[index++];
        node->lchild = createTree(s); // 递归构建左子树
        node->rchild = createTree(s); // 递归构建右子树
        return node;
    }
}

// 中序遍历
void inorder(Tnode* root) {
    if (root == nullptr) return;
    inorder(root->lchild);
    cout << root->data << " &quo...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发