一.已知后序中序求先序
#include#include #include #include #include #include using namespace std;string ZX,HX;void Search(string a,string b){ int len=a.size(); if(len==1){cout< >ZX>>HX;Search(ZX,HX);}
二.已知先序中序求后序
#include#include #include #include #include #include using namespace std;string ZX,HX;void Search(string a,string b){ int len=a.size(); if(len==1){cout< >ZX>>HX;Search(ZX,HX);}
三.多叉树转二叉树
#include#include #include #include using namespace std;struct list{ int l; int r;}node[2001];void init(){ int i; scanf("%d%d",&n,&m); memset(vis,-1,sizeof(vis)); for(i=0;i<=n;i++) { node[i].l=node[i].r=0; } for(i=1;i<=n;i++)//边输入,边转化 { int a,b; scanf("%d%d",&a,&b); node[b].r=node[a].l; node[a].l=b; }}int main(){ init(); return 0;}