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