Java实现——根据先序遍历和中序遍历,确定二叉树
来源:互联网 发布:广东11选5遗漏360数据 编辑:程序博客网 时间:2024/06/05 05:40
转自《Java程序员面试笔试宝典》(何昊等编著,机械工业出版社)
根据先序遍历和中序遍历,确定二叉树后,可以给出后序遍历或层序遍历。
public int findIndexInArray(int[] array , int data , int begin , int end){for(int i = begin ; i <= end ; i++){if(data == array[i]){return i;}}return -1;}public void initTree(int[] preOrder , int[] inOrder){root = initTree(preOrder , 0 , preOrder.length - 1 , inOrder , 0 , inOrder.length - 1);}public Node initTree(int[] preOrder , int start1 , int end1 , int[] inOrder , int start2 , int end2){if(start1 > end1 || start2 > end2){return null;}int rootData = preOrder[start1];Node head = new Node(rootData);int rootIndex = findIndexInArray(inOrder , rootData , start2 , end2);int offSet = rootIndex - start2 - 1;//构建左子树Node left = initTree(preOrder , start1 + 1 , start1 + 1 + offSet , inOrder , start2 , start2 + offSet);Node right = initTree(preOrder , start1 + 2 + offSet , end1 , inOrder , start2 + offSet + 2 , end2);head.left = left;head.right = right;return head;}
阅读全文
0 0
- Java实现——根据先序遍历和中序遍历,确定二叉树
- 数组实现根据二叉树的先序遍历和中序遍历构造二叉树
- 根据先序和中序遍历重建二叉树java实现
- java实现二叉树已知先序遍历和中序遍历求后序遍历
- 根据先序和中序遍历重建二叉树
- 根据中序遍历和后序遍历求二叉树的先序遍历
- 根据中序遍历和先序遍历,后序遍历创建二叉树。
- 二叉树——根据先序(后序)和中序遍历建树
- 数据结构——根据中序遍历与先序遍历构建二叉树
- 根据二叉树的先序遍历和中序遍历建立二叉树
- 根据二叉树的先序遍历和中序遍历重构二叉树
- 根据二叉树的先序遍历和中序遍历重建二叉树
- 已知先序遍历和中序遍历求后序遍历——二叉树
- 已知先序遍历和中序遍历求后序遍历——二叉树
- 如何根据前序遍历序列和中序遍历序列确定二叉树
- 根据中序遍历和后序遍历确定二叉树
- 如何根据前序遍历序列和中序遍历序列确定二叉树
- 【二叉树】 根据先序和中序遍历输出后序遍历
- 如何搭建vue项目
- IMPROVING THE DISPLAY OF WIND PATTERNS AND OCEAN CURRENTS
- LeetCode-97-Interleaving String DP 记忆化搜索
- jQuery bind(绑定事件)前别忘了unbind(移除事件)
- vlc库下载
- Java实现——根据先序遍历和中序遍历,确定二叉树
- PBFT(拜占庭容错)
- hibernate与spring整合
- 指针和一维数组关系
- hive安装配置
- t.xml文件中的Activity属性android:name必须和工程src目录下的相关类名保持一致
- 用自己的数据完成“分类”
- 什么是MyBatis
- 内存移动:memmove原理模拟实现