首页 > 编程知识 正文

怎么求二叉树的后序遍历,已知先序遍历如何求二叉树

时间:2023-05-05 00:56:20 阅读:249413 作者:1332

/** * 根据前序遍历序列和中序遍历序列还原二叉树 * A[]表示前序遍历序列 B[]表示中序遍历序列 * A[l1, h1]B[l2, h2] * 初始时l1 = h1 = 1,l2 = h2 = 结点个数 */Bitree PreInCreate(int *A, int *B, int l1, int h1, int l2, int h2){BiNode *root = new BiNode;root->data = A[l1];// 前序序列第一个结点作为根结点int i = l2;for (; B[i] != root->data; ++i);// 在中序序列中查找根结点的位置int llen = i - l2;int rlen = h2 - i;if (!llen){root->lchild = NULL;}else{root->lchild = PreInCreate(A, B, l1 + 1, l1 + llen, l2, l2 + llen - 1);}if (!rlen){root->rchild = NULL;}else{root->rchild = PreInCreate(A, B, h1 - rlen + 1, h1, h2 - rlen + 1, h2);}return root;}
vscode配置远程开发环境并远程调试运行C++代码的教程

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。