/*
树:分治和递归的艺术
*/
#include <bits/stdc++.h>
using namespace std;
#define MAX_N 1000
char tree[MAX_N]; // 0 表示空节点
// 1.初始化
void initTree(){
for(int i=0;i<MAX_N;i++){ tree[i] =0;}
}
// 2.设置根节点
void setRoot(char v) {
tree[0] = v;
}
// 3.设置左孩子(2*i+1)
void setLeft(int parentIdx,char v) {
if(tree[parentIdx] == 0) return;//父节点不存在
int idx = 2 * parentIdx + 1;
if(idx < MAX_N){
tree[idx] = v;
}
}
// 4.设置右孩子(2*i+2)
void setRight(int parentIdx,char v) {
if(tree[parentIdx] == 0) return;//父节点不存在
int idx = 2 * parentIdx + 2;
if(idx < MAX_N){
tree[idx] = v;
}
}
int main(){
initTree();
//构建一棵树
setRoot('A'); //tree(0) = 'A'
setLeft(0,'B'); //tree(1) = 'B'
setRight(0,'C'); //tree[2] = 'C'
// B->D,E
setLeft(1,'D');
setRight(1,'E');
return 0;
}
用数组构建一个二叉树
分类:默认
时间:2026-01-07 20:18:09
评论留言 (0条)