首页 > 试题广场 >

请说明下列算法中的Unknown1、Unknown2 和Un

[问答题]

请说明下列算法中的Unknown1Unknown2 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"是!");
   }
}



这道题你会答吗?花几分钟告诉大家答案吧!