This is a Facebook interview question.
We have a binary tree, suppose like this:
8/ \
610/ \ / \
47912/ \
35
We have to print this binary tree in top-down manner - column wise. Note that, 8, 7 & 9
would be considered in same column. So the required output should be:
34658791012
public void traverse(Node root) { TreeMap<Integer, List<Integer>> columnMap = new TreeMap<>(); recurseTraverse(root, columnMap, 0); for (Entry<Integer, List<Node<Integer>>> entry: columnMap.entrySet()) { System.out.println("Column - " + entry.getKey() + " : " + entry.getValue()); } } private void recurseTraverse(final Node node, final Map<Integer, List<Integer>> columnmap, final int column) { if (node == null) { return; } List<Integer> list = columnmap.get(column); if (list == null) { list = new ArrayList<Integer>(); columnmap.put(column, list); } list.add(node.getValue()); recurse(node.left(), columnmap, column - 1); recurse(node.right(), columnmap, column + 1); }
From:
http://codereview.stackexchange.com/questions/36799/printing-a-binary-tree-top-down-column-wise
相关推荐
Construct Binary Tree from Preorder and Inorder Traversal 根据先序,中序建立二叉树
标题"C#资源库-binarytree"指的是一个使用C#编程语言实现的二叉树数据结构的代码库。在软件开发中,二叉树是一种基础且重要的数据结构,它由节点构成,每个节点最多有两个子节点,通常称为左子节点和右子节点。这种...
`print_tree` 函数则用于树状打印,通过调整缩进来展示树的层次结构。 在实际应用中,二叉树遍历和打印可用于各种场景,如搜索、排序、数据结构可视化等。了解这些基本操作对于理解和操作二叉树至关重要。对于...
BinaryTree-BinaryTree
This is a binary tree search implementation.
总结,`Java Binary Tree Order`涉及到了二叉树的基本操作,包括遍历(中序、后序、前序)和可能的删除功能。深入理解这些概念和实现,有助于开发者在解决实际问题时构建高效的数据结构和算法。
c++ C++_leetcode题解之655. Print Binary Tree.cpp
二叉树是一种重要的数据结构,它在计算机科学中扮演着至关重要的角色,特别是在算法和...在二叉树的`BinaryTree`文件中,可能会包含这些操作的具体实现,通过阅读和理解这些代码,可以深入学习和掌握二叉树的相关知识。
Construct Binary Tree from Inorder and Postorder Traversa.根据先序后续构建二叉树
【标题】:“BinaryTree-源码.rar”是一个与二叉树相关的源代码压缩包,它可能包含各种二叉树数据结构的实现,如二叉搜索树、平衡二叉树(AVL树或红黑树)或者自定义的二叉树结构。这个压缩包可能为学习数据结构与...
二叉树是一种在计算机科学中广泛使用的数据结构,它的每个节点最多有两个子节点,通常称为左子节点和右...解压“binarytree.rar”,查看其中的文件,理解数据结构,并根据给定的描述编写代码,以实现二叉树的前序遍历。
An inorder binary tree traversal can be implemented in a non-recursive way with a stack. For example, suppose that when a 6-node binary tree (with the keys numbered from 1 to 6) is traversed, the ...
在IT领域,二叉树(Binary Tree)是一种基础的数据结构,尤其在计算机科学中有着广泛的应用。二叉树是每个节点最多有两个子节点的树结构,通常分为左子节点和右子节点。在这个"java-二叉树binaryTree"主题中,我们将...
"Python-BinaryTree"是一个专门用于学习和操作二叉树的Python库,它提供了方便的API来创建、遍历和操作二叉树。 1. **二叉树的概念与类型** - 二叉树的基本概念:二叉树的每个节点包含一个值、一个指向左子树的...
在计算机科学中,二叉树(Binary Tree)是一种数据结构,每个节点最多有两个子节点,通常分为左子节点和右子节点。这种数据结构广泛应用于各种算法和问题解决,如搜索、排序、文件系统等。在C语言中实现二叉树,我们...
BinaryTreeSort的java实现,简单的二叉树排序
94.Binary_Tree_Inorder_Traversal二叉树的中序遍历【LeetCode单题讲解系列】
我的个人微信公众号:Microstrong 微信公众号ID:MicrostrongAI 微信公众号介绍:Microstrong(小强)同学主要研究机器学习、深度学习、计算机视觉、智能对话系统相关内容,分享在学习过程中的...102. Binary Tree Leve
在给定的“二叉树官方源码BinaryTree_src”中,我们可以找到一系列与二叉树相关的源代码文件,这为理解和实现二叉树提供了宝贵的参考资料。 首先,我们看到一个名为"BinaryTreeDemo.clw"的文件,这可能是项目的工作...
C++实现 操作函数包括先序、中序、后序遍历,求深度,深度、广度遍历 构建二叉树