二叉树利用前序遍历+中序遍历---->后序遍历(把整个树建立起来)

来源:互联网 发布:ios 数据共享 编辑:程序博客网 时间:2024/05/21 05:40
#include<iostream>#include<string.h>using namespace std;typedef struct TreeNode{char Data;TreeNode* Left;TreeNode* Right;}*BinTree;BinTree InPrePost(char* inorder, char * preorder, int length){BinTree BT;if (length >= 1){BT = (BinTree)malloc(sizeof(TreeNode));BT->Data = *preorder;BT->Right = BT->Left = NULL;int i = 0;for (i = 0; i < length; i++){if (inorder[i] == *preorder)break;}BT->Left=InPrePost(inorder, preorder + 1, i);BT->Right=InPrePost(inorder + i + 1, preorder + i + 1, length - (i + 1));return BT;}return NULL;}void PostOrderTraversal(BinTree T){if (T){PostOrderTraversal(T->Left);PostOrderTraversal(T->Right);printf("%c", T->Data);}}int main(){char *inorder = "ADEFGHMZ";char *preorder = "GDAFEMHZ";BinTree T=InPrePost(inorder, preorder, 8);PostOrderTraversal(T);return 0;}

0 0
原创粉丝点击