给定一个二叉树层序遍历(只要该层有结点,那么该层的空结点也要访问)的整型数据数组,数组中的0代表该结点为NULL,要求你根据该数组输出该二叉树先序遍历的结点值,C++代码实现如下:
#includeusing namespace std; //关键在于对数组下标的处理 //从0开始存储,那么第i个结点的左孩子就是2*i+1,右孩子就是2*i+2。 //如果从1开始存储,那么第i个结点的左孩子是2*i,右孩子是2*i+1。 //因为数组是从0开始存储的,所以i从0开始往右找它的子结点 void preShow(int *arr,bool *visited,int i,int n){ //这个函数类似于二叉树的先序遍历 if(i>=n) return; if(visited[i]){ cout<0){ visited[i]=true; } } preShow(arr,visited,0,n); cout< >t; //t含义是进行t次的循环,每一次循环处理一个数组 for(int i=0;i >n; //arr就是储存层序遍历数据的数组 int *arr=new int[n]; for(int j=0;j >arr[j]; } //一个函数处理好题目要求 preOrder(arr,n); } return 0; }
我是花花,祝自己也祝您变强了~



