由二叉树中序和先序遍历求二叉树的结构
// 二叉树.cpp : 定义控制台应用程序的入口点。 //![]()
#include "stdio.h" char A[10]; char B[10]; //int length; void input(){ printf("二叉树中序遍历:"); gets(A); printf("二叉树先序遍历:"); gets(B); } int position(int m){ int i; for(i=0;i<10;i++) if(B[m]==A[i]) return i; return -1; } void output(int i,int j,int m,int n){ int k=position(m); if(k==-1) printf("wrong!!!"); else{ if(k-i>0){ printf("("); output(i,k-1,m+1,k-i+m); printf(")"); } printf("%c",B[m]); if(j-k>0){ printf("("); output(k+1,j,k-i+m+1,n); printf(")"); } } } int _tmain(int argc, _TCHAR* argv[]) { input(); printf("输出结果:"); output(0,7,0,7); getchar(); getchar(); return 0; }
贯彻自己的思想