/*
煙臺大學計算機學院
文件名稱:xiangmu.cpp
作者:陳軍正
完成日期:2017年12月7日
問題描述:二叉樹構造算法的驗證
輸入描述:無
輸出描述:知先序中序構造二叉樹結果
用到btree2.h算法庫
*/
#include <stdio.h>
#include <malloc.h>
#include "../btree2.h"
BTNode *CreateBT1(char *pre,char *in,int n)
{
BTNode *s;
char *p;
int k;
if (n<=0) return NULL;
s=(BTNode *)malloc(sizeof(BTNode)); //創建二叉樹結點*s
s->data=*pre;
for (p=in; p<in+n; p++) //在中序序列中找等於*ppos的位置k
if (*p==*pre) //pre指向根結點
break; //在in中找到後退出循環
k=p-in; //確定根結點在in中的位置
s->lchild=CreateBT1(pre+1,in,k); //遞歸構造左子樹
s->rchild=CreateBT1(pre+k+1,p+1,n-k-1); //遞歸構造右子樹
return s;
}
int main()
{
ElemType pre[]="ABDGCEF",in[]="DGBAECF";
BTNode *p;
p=CreateBT1(pre,in,7);
DispBTNode(p);
}
運行結果:
第十週 項目 1 - 驗證算法 (2)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.