首页 > 其他分享 >推断二叉树(递推)

推断二叉树(递推)

时间:2024-09-03 17:28:32浏览次数:12  
标签:pre binary cur tree mid 二叉树 推断 include 递推

已知前序中序求后序

#include<cstring>
#include<cstdio>
#include<iostream>
using namespace std;
void binary_tree(string mid, string pre) {
	if (mid.size() > 0) {
		char ch = pre[0];
		int cur = mid.find(ch);
		binary_tree(mid.substr(0, cur), pre.substr(1, cur));
		binary_tree(mid.substr(cur + 1), pre.substr(cur + 1));
		cout << ch;
	}
}

int main() {
	string a, b;
	cin >> a >> b;
	binary_tree(a, b);
	return 0;
}

已知后序中序求前序

#include<cstring>
#include<cstdio>
#include<iostream>
using namespace std; void binary_tree(string mid, string last)
{
	if (mid.size() > 0)
	{
		char ch = last[last.size() - 1];
		cout << ch;
		int cur = mid.find(ch);
		binary_tree(mid.substr(0, cur), last.substr(0, cur));
		binary_tree(mid.substr(cur + 1), last.substr(cur, last.size() - cur - 1));
	}
}

int main()
{
	string a, b;
	cin >> a >> b;
	binary_tree(a, b);
	return 0;
}

标签:pre,binary,cur,tree,mid,二叉树,推断,include,递推
From: https://www.cnblogs.com/windzhao6/p/18395016

相关文章

  • Day14|第六章 二叉树 part02| 226.翻转二叉树| 101. 对称二叉树| 104.二叉树的最大深
    226.翻转二叉树(递归只能前序或者后序,中序不行)classSolution{publicTreeNodeinvertTree(TreeNoderoot){if(root==null)returnnull;swap(root);invertTree(root.left);invertTree(root.right);//swap(root);......
  • 算法与数据结构——二叉树数组表示
    二叉树数组表示在链表表示下,二叉树的存储单元为节点TreeNode,节点之间通过指针相连接。同前面的队列或栈,二叉树同样可以使用数组来表示。表示完美二叉树给定一棵完美二叉树,我们将所有节点按照层序遍历的顺序存储在一个数组中,则每个节点都对应唯一的数组索引。按照层序遍历的特......
  • Java二叉树的遍历以及最大深度问题
    Java学习+面试指南:https://javaxiaobear.cn1、树的相关概念1、树的基本定义树是我们计算机中非常重要的一种数据结构,同时使用树这种数据结构,可以描述现实生活中的很多事物,例如家谱、单位的组织架构、等等。树是由n(n>=1)个有限结点组成一个具有层次关系的集合。把它叫做“树”是因为......
  • 算法与数据结构——二叉树
    二叉树二叉树(binarytree)是一种非线性数据结构,代表“祖先”与“后代”之间的派生关系,体现了“一分为二”的分治逻辑。与链表类似,二叉树的基本单元是节点,每个节点包含值、左子节点引用和右子节点引用。structTreeNode{ intval; //节点值 TreeNode*left; //左子结点指......
  • Java 实现二叉树展平为链表
    Java实现二叉树展平为链表前言问题背景解决方案代码实现代码分析结论使用原地算法(O(1)空间复杂度)将二叉树展平为链表问题描述解决方案代码实现代码分析优化思路结论前言在处理二叉树数据结构时,有时需要将其转换成一种特殊的形态,即链表。这种转换可以简化某些......
  • 二叉树的遍历
    先序遍历usingnamespacestd;//定义二叉树节点结构体structTreeNode{charData;//节点的数据TreeNode*left;//左子节点TreeNode*right;//右子节点//构造函数TreeNode(chardata,TreeNode*leftChild=nullptr,T......
  • Go平衡二叉树
    packagemainimport("fmt")typeAVLNodestruct{dataintheightintleft,right*AVLNode}funcmax(a,bint)int{ifa>b{returna}returnb}funcheight(p*AVLNode)int{ifp!=nil{......
  • 排序算法之二叉树排序详细解读(附带Java代码解读)
    二叉树排序(BinaryTreeSort)是一种基于二叉搜索树(BinarySearchTree,BST)实现的排序算法。它的基本思想是利用二叉搜索树的性质来实现排序,通过将元素插入到二叉搜索树中,然后对树进行中序遍历来获取排序后的元素。基本概念二叉搜索树(BST):对于二叉搜索树中的每一个节点,其左......
  • 二叉树的直径(LeetCode)
    题目给你一棵二叉树的根节点,返回该树的 直径 。二叉树的 直径 是指树中任意两个节点之间最长路径的 长度 。这条路径可能经过也可能不经过根节点 root 。两节点之间路径的 长度 由它们之间边数表示。解题classTreeNode:def__init__(self,val=0,left=......
  • 代码随想录刷题day13丨二叉树理论基础,递归遍历,迭代遍历,统一迭代,层序遍历
    代码随想录刷题day13丨二叉树理论基础,递归遍历,迭代遍历,统一迭代,层序遍历1.二叉树理论基础1.1二叉树种类满二叉树概述:如果一棵二叉树只有度为0的结点和度为2的结点,并且度为0的结点在同一层上,则这棵二叉树为满二叉树。这棵二叉树为满二叉树,也可以说深度为k,有2^k-1个节......