菜鸡继续打卡~贴代码,日后补充。
与昨天的求后序遍历代码相似,昨天的偷懒了,没有建树过程。
/**dandelion
** 2017-08-10* 已知中序遍历和后序遍历的结果求前序遍历**/#include <iostream>using namespace std;typedef struct BinaryNode{ struct BinaryNode *left,*right; char data;};BinaryNode *changeToDLR(char *mid,char *lat,int length){ if(0==length) return NULL; BinaryNode *node = new BinaryNode; node->data=*(lat+length-1); cout<<node->data; int index= 0; for( ; index<length; index++) if(mid[index]==lat[length-1]) break; node->left = changeToDLR(mid,lat,index); node->right = changeToDLR(mid+index+1,lat+index,length-index-1);}int main(){ char *mid="gdbxajmec"; char *lat="gbxdmjcea"; changeToDLR(mid,lat,9); return 0;}