//5
void CreateBinTree_5(BinTree *bt, char *VLR, char *LVR, int n)
{
CreateBinTree_5(bt->root,VLR,LVR,n);
}
void CreateBinTree_5(BinTreeNode *&t, char *VLR, char *LVR, int n)
{
if(n == 0)
t = NULL;
else
{
int k = 0;
while(VLR[0] != LVR[k])
k++;
t = (BinTreeNode*)malloc(sizeof(BinTreeNode));
assert(t != NULL);
t->data = LVR[k];
CreateBinTree_5(t->leftChild,VLR+1,LVR,k);
CreateBinTree_5(t->rightChild,VLR+k+1,LVR+k+1,n-k-1);
}
}
void CreateBinTree_6(BinTree *bt, char *LVR, char *LRV, int n)
{
CreateBinTree_6(bt->root,LVR,LRV,n);
}
void CreateBinTree_6(BinTreeNode *&t, char *LVR, char *LRV, int n)
{
if(n == 0)
t = NULL;
else
{
int k = 0;
while(LRV[n-1] != LVR[k])
k++;
t = (BinTreeNode*)malloc(sizeof(BinTreeNode));
assert(t != NULL);
t->data = LVR[k];
CreateBinTree_6(t->rightChild,LVR+k+1,LRV+k,n-k-1);
CreateBinTree_6(t->leftChild,LVR,LRV,k);
}
}
c语言-根据前序中序还原二叉树
最新推荐文章于 2022-10-14 20:53:28 发布