请说明下列算法中的Unknown1、Unknown2 和Unknown3 的功能。如果Unknownl的输入数据为(20_13_1_0_5_3_0_0_8_0_0 _0 30_0_0), 其中“_”表示空格,那么整个程序将建立一个什么样的结构,最后的输出是什么?
#include <stdlib.h> #include <stdio.h> #defineOK 1 #define ERROR 0 #define OVERFLOW 0 int i,count=0; int A[!00}; typedef int Status; tpedcf int TElemType; typedef structs_ BiTNode{ { TElemType data; structs BiTNode *lchild,*rchild; } BiTNode, *BiTree; Status Unknown1(BiTree &T); Status Unknown2(BiTree *T); Status Unknown3(BiTree *T); Status Unknown1(BiTree &Tree) { TElemType el; scanf(%d",&el); if(el==O) Tree=NULL; Else { if(!(Tree= (BiTree)malloc(sizeof(BiTNode) ) ) ) exit(OVERFLOW); Tree->data= ei; Unknown1(Tree- >lchild); Unknownl(Tree->rchi!d); } returr (OK); } Status Unknown2(BiTreeT) { if(T) { Unknown2(T>lchild); printf(' %d ",T> data); A[count]=T> data; Unknown2(T>rchild); Return OK; } else retum OK;3 } Status Unknown3(BiTreeT) { for(i=0;i<= count-2;iH)[ if(A[i+1]){ if[A[í]> A[i+l]) return ERROR; } } return OK } void mainO { BiTree TrNULL; Unknown1(Tr); Unknown2(Tr); printf("╲n"); int flag = Unknown3(Tr); if(fag=0)}{ printf"不是!"); }else f(flag==1){ printf"是!"); } }