给一个二叉树的前序和中序序列,求二叉树的层序序列
来源:互联网 发布:linux网络书籍 编辑:程序博客网 时间:2024/06/01 08:01
import java.util.Scanner;class Node {char value;Node left;Node right;int signal;public Node() {}public Node(char value, Node left, Node right, int signal) {super();this.value = value;this.left = left;this.right = right;this.signal = signal;}public int getValue() {return value;}public void setValue(char value) {this.value = value;}public Node getLeft() {return left;}public void setLeft(Node left) {this.left = left;}public Node getRight() {return right;}public void setRight(Node right) {this.right = right;}}public class Main {static int k = 0;private static void layerOrder(Node root) {if(root == null) return ;Node[] q = new Node[k];char[] r = new char[k];int start = 0, end = 1;q[start] = root;while(start < end && start < k) {r[start] = q[start].value;if(q[start].left != null) q[end++] = q[start].left;if(q[start].right != null) q[end++] = q[start].right;start++;}System.out.println(new String(r));}private static Node findLayers(char[] prc, char[] inc, int low, int high) {if(low > high) return null;Node root = new Node();char tmp_root = prc[k++];root.setValue(tmp_root);int position_root_in_In = -1;for( int i = low; i <= high; i++ ) {if(tmp_root == inc[i]) {position_root_in_In = i;break;}}Node l = findLayers(prc,inc,low,position_root_in_In-1);Node r = findLayers(prc,inc,position_root_in_In+1,high);root.setLeft(l);root.setRight(r);return root;}public static void main(String[] args) {Scanner sc = new Scanner(System.in);while(sc.hasNext()) {k = 0;String pr = sc.nextLine();String post = sc.nextLine();int len = pr.length();char[] prc = pr.toCharArray();char[] inc = post.toCharArray();char[] layer = new char[len];Node root = new Node();root.setValue(prc[0]);root.setLeft(null);root.setRight(null);Node tree = findLayers(prc,inc,0,len-1);layerOrder(tree);}}}
阅读全文
1 0
- 给一个二叉树的前序和中序序列,求二叉树的层序序列
- 给一个二叉树的前序和中序序列,求二叉树的层序序列
- 根据中序序列和前序序列,求二叉树的后序序列
- 已知二叉树的前序序列和中序序列,求二叉树的后序序列
- 从二叉树的前序遍历序列和中序遍历序列重构出二叉树
- 由二叉树的前序序列和中序序列构建二叉树
- 根据二叉树的前序遍历序列和中序遍历序列求二叉树的后序遍历序列
- 根据二叉树的前序序列和中序序列得到后序序列
- 【C++】非递归求二叉树的前序和中序序列
- 由二叉树的前序遍历序列和中序遍历序列求后序遍历序列
- 知道前序序列和后序序列求二叉树的个数+大数
- 已知前序遍历序列和中序遍历序列,求二叉树的后序遍历
- 已知二叉树的中序序列和前序序列(或后序)求解树
- 已知二叉树的中序序列和前序序列(或后序)求解树
- POJ 2255 根据二叉树的前序和中序序列来重建二叉树
- 根据二叉树的前序和中序序列来重建二叉树
- 已知二叉树的前序和中序序列,不建立二叉树来输出后序序列
- 已知二叉树的前序和中序序列,构建二叉树并求后序序列,java实现。
- RMQ (Range Minimum/Maximum Query)算法
- Python 不换行输出
- Spring 四种切面技术(拦截)、获取Spring容器的两种办法
- eclipse快捷键设置大全
- Lisview下item添加阴影效果
- 给一个二叉树的前序和中序序列,求二叉树的层序序列
- okttp3及多种网络数据解析
- c语言实现栈,共享栈,链式栈
- 字符串string
- php 403 Forbidden you don't have permission to access
- python按照多个条件排序
- 云主机网卡 双网卡
- 字节序学习
- jqGrid使用