}
}
//由str建立二叉链bt
void CreateBTree(BTNode * &bt,char *str) { }
void DestroyBTree(BTNode *&bt) { }
if (bt!=NULL) { }
DestroyBTree(bt->lchild); DestroyBTree(bt->rchild); free(bt);
BTNode *St[MaxSize],*p=NULL; ElemType d; int top=-1,k,j=0; char ch; bt=NULL; ch=str[j]; while (ch!='\\0') { }
switch(ch) {
//str未扫描完时循环
//建立的二叉树初始时为空
case '(':top++;St[top]=p; //为'(',其后结点为栈顶结点的左孩子
k=1; break;
//为')',当前子树结束
//为',',其后结点为栈顶结点的右孩子 //为数字符,提取数字并建相应的结点
case ')':top--;break; case ',':k=2; break; default: } j++; ch=str[j];
d=0;
while (str[j]>='0' && str[j]<='9') { } j--;
//后退一个字符
p=(BTNode *)malloc(sizeof(BTNode)); p->data=d; p->lchild=p->rchild=NULL; if (bt==NULL) { } break;
bt=p;
//已建立二叉树根结点
switch(k) {
case 1:St[top]->lchild=p;break; case 2:St[top]->rchild=p;break; } else
//*p为二叉树的根结点
//str[j]为数字符,将数字串转换成数值d d*=10;
d+=str[j]-'0'; j++;
//销毁二叉树
void DispBTree(BTNode *bt) { }
void main() { }
BTNode *bt; if (bt!=NULL) { }
printf(\
//输出二叉树
if (bt->lchild!=NULL || bt->rchild!=NULL) { }
printf(\
//有子树时输入'('
DispBTree(bt->lchild); //递归处理左子树 if (bt->rchild!=NULL) //有右子树时输入'.'
printf(\
//子树输出完毕,再输入一个')'
DispBTree(bt->rchild); //递归处理右子树 printf(\
char a[]=\CreateBTree(bt,a);
printf(\二叉树:\if (judgeBST(bt))
printf(\该二叉树是一棵BST\\n\printf(\该二叉树不是一棵BST\\n\else
DestroyBTree(bt);
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库练习题8参考答案(2)在线全文阅读。
相关推荐: