本文共 633 字,大约阅读时间需要 2 分钟。
#include#include #include void preOrderTraverse(const char *inStart, const char *inEnd,const char *postStart, const char *postEnd){ char root = *postEnd; printf("%c",root); int len = postEnd - postStart,i = 0; for(;*(inStart+i) != root && i<=len; i++); //查找根结点在中序的位置 if (i != 0) {//如果不是第一个,说明其含有左子树 preOrderTraverse(inStart, inStart+i-1,postStart, postStart+i-1); } if (i != len) {//如果不是最后一个,说明其含有右子树 preOrderTraverse(inStart+i+1, inEnd,postStart+i, postEnd-1); } }int main(){ char *s1 = "ABCDEFG"; char *s2 = "BDCAFGE"; preOrderTraverse(s1,s1+strlen(s1)-1, s2,s2+strlen(s2)-1); printf("\n"); return 0;}
转载地址:http://iqmbn.baihongyu.com/