文章
6
粉丝
0
获赞
31
访问
761
#include<bits/stdc++.h>
using namespace std;
typedef struct BTNode {
char c;
struct BTNode* lc, * rc;
} BTNode, * BiTree;
// 先序构建二叉树
void ct(BiTree &t, int &p, const string &s) {
if (p >= s.size()) return;
char a=s[p];
if ( a== '#') {
t = NULL;
p++;
} else {
t = new BTNode;
t->c = a;
p++;
ct(t->lc, p, s);
ct(t->rc, p, s);
}
}
// 修正后的中序遍历
void zx(BiTree t) { // 不需要引用,因为不修改树
if (t == NULL) return;
zx(t->lc);
cout << t->c << " ";
zx(t->rc);
}
// 释放二叉树内存(可选)
void freeTree(BiTree t) {
if (t == NULL) return;
...
登录后发布评论
// 先序构建二叉树
void ct(BiTree &t, int &p, const string &s) {
if (p >= s.size()) return;
char a=s[p];
if ( a== '#') {
t = NULL;
p++;
} else {
t = new BTNode;
t->c = a;
t->lc = NULL;
t->rc = NULL;
p++;
ct(t->lc, p, s);
ct(t->rc, p, s);
}
}
左右孩子要初始化为NULL,不然你后面ct(t->lc, p, s)里面传进去的是随机的指针