大体思路
- 一直*2, 直到小于总结点数, – 左节点
- 在(1)不成立的情况下+1, 并且要注意临界点(下标不能超过总结点数和因为是先序, 所以父节点存在) – 右节点
- 由左节点产生的树遍历完, 要找其兄弟节点
详细思路见代码
具体实现
#include <stdio.h>
#define MAX 100
int tree[MAX];
int tmp[MAX];
void inPrintTree(int i, int n){
if(i <= n){
inPrintTree(2*i, n);
printf("%d ", tree[i]);
inPrintTree(2*i+1, n);