#include <stdio.h>
int main(){
//每个节点中第0位位真实值,第1位左子树节点数组下标(-1表示无),第2位是右子树节点数组下标(-1表示无),
//int a[5][3]={{1,1,2},{2,-1,-1},{3,-1,-1}};
//int a[5][3]={{1,1,2},{2,3,4},{3,-1,-1},{4,-1,-1},{5,-1,-1}};
//int a[5][3]={{1,1,2},{2,3,-1},{3,-1,-1},{4,-1,-1},{}};
int a[5][3]={{1,1,2},{2,-1,4},{3,-1,-1},{},{5,-1,-1}};
//int a[5][3]={{1,1,2},{2,-1,-1},{3,3,4},{4,-1,-1},{5,-1,-1}};
//int a[5][3]={{1,1,2},{2,-1,-1},{3,-1,4},{},{5,-1,-1}};
//int a[5][3]={{1,1,2},{2,-1,-1},{3,3,-1},{4,-1,-1},{}};
int stack[5];
int stackOffset=0;
stack[stackOffset++]=0;
while(stackOffset>0){
int *tmp=a[stack[--stackOffset]];
printf("%d\n",*(tmp+0));
int leftIndex=*(tmp+1);
int rightIndex=*(tmp+2);
if( rightIndex!=-1){
stack[stackOffset++]=rightIndex;
}
if(leftIndex!=-1 ){
stack[stackOffset++]=leftIndex;
}
}
return 0;
}
前序遍历二叉树
最新推荐文章于 2023-01-02 21:36:37 发布