binary-trees

For a given binary tree find maximum binary search sub-tree

For a given binary tree, largest binary search sub-tree should be found. Example: Input: 10 / \ 50 150 / \ / \ 25 75 200 20 / \ / \ / \ / \ 15 35 65 30 120 135 155 250 Output: 50...

How To Find the Mirror Node of a Given Node (or item) in a Binary Tree Efficiently

Hi, I've been thinking of this problem, and I have not found a good, efficient solution. How to find the mirror node of a given node (or item) in a binary tree? // Node definition struct _Node { char data; struct _Node* left; struct _Node* right; } Node; // Assumption: // "given" is guaranteed in the binary tree ("roo...

Postorder Traversal

In-order tree traversal obviously has application; getting the contents in order. Preorder traversal seems really useful for creating a copy of the tree. Is there a common use for postorder traversal of a binary tree? ...

How to find sum of node's value for given depth IF the tree is NOT complete?

I've asked very similar question before and should have mentioned more detailed. Last time was "how to find sum of node's value for given depth in binary tree" in PHP. sum(Node, Level) = if (Level == 0) return Node.value; else return f(Node.left, Level-1) + f(Node.right, Level-1). So now I tried to write this in Ja...

Reconstructing binary tree from inorder and preorder traversals.

I have written the following code for constructing a tree from its inorder and preorder traversals. It looks correct to me but the final tree it results in does not have the same inorder output as the one it was built from. Can anyone help me find the flaw in this function? public btree makeTree(int[] preorder, int[] inorder, int left,...

Is there a built in Binary Search Tree in .NET 4.0?

Is there a built in binary search tree in .NET 4.0, or do I need to build this abstract data type from scratch? ...

Tutorial for Tree Data Structure in C

Hi, Could someone direct me to some tutorial on Tree Data Structures using C. I tried googling but most implementations are for C++ or Java.If someone can point me to some online tutorials that are in C it would be great. Thanks.. ...

Problem with pointers in binary search tree deletion.

I am trying to implement binary search tree operations and got stuck at deletion. 11 / \ 10 14 Using inorder traversal as representation of tree initially output is 10 11 14. Deleting node 10, output expected is 11 14 but I am getting 0 11 14. Deleting node 14, output expected is just 11 but I am getting 0 11 67837. Please ex...

Help with AA-Tree deletion

I am writing a non-recursive AA-Tree that is similar to std::multiset. I was wondering if anybody could notice any problems in my code to rebalance the tree for a deletion. The while loop in erase_rebalance() is going into an infinite loop when erase(iterator first, iterator last) is called. This is leading me to believe that the code to...

Java: balanced binary search tree

Given my recent (somewhat successful) question: http://stackoverflow.com/questions/3387274/algorithmic-issue-determining-user-sessions I'm pretty sure that the way to solve it cleanly is to use a balanced binary tree (which would give an n log m solution to the problem, where thankfully the m is going to be quite small, even tiny, com...

Walk folder tree, bottom up

I'm looking for ideas for fast and effective way to walk through folders bottom-up using C#/.NET 3.5 for example: -0 --1 ---12 --2 ---21 ---22 ---23 first walk though: 12,21,22,23 then: 1,2 Thanks ...

Convert a binary tree to linked list, breadth first, constant storage/destructive

This is not homework, and I don't need to answer it, but now I have become obsessed :) The problem is: Design an algorithm to destructively flatten a binary tree to a linked list, breadth-first. Okay, easy enough. Just build a queue, and do what you have to. That was the warm-up. Now, implement it with constant storage (recursion, ...

Bin Tree Post Order Traversal, No recursion, no node flag

Is there another way to do this? Just spent 2 hours trying to figure it out. I have a solution (see DumpPostOrder below) however, is there is a better or more efficient method? It feels like there may be. Rules are - no recursion, and the nodes cannot have a visited flag. Ie, you can only use left + right members. My approach was to de...

Traversing arbitrarily large binary tree inorder

I'm stuck at finding a solution. C#, .NET 4.0, VS2010 I can easily write a recursive one, but can't for the life of me figure out something that won't overflow the stack if the tree is arbitrarily large. This is a binary tree question, and i am trying to write a public IEnumerable<T> Values() method. Here is the full code in case ...

Binary trees, construct a tree based on preorder

Hello, constructing a tree given it's inorder is easy enough. But, let's say you are supposed to construct a tree based on it's preorder (+ + y z + * x y z for example). It's easy to see that + is the root, and how to continue in the left subtree from there. But.. how do you know when you are supposed to "switch" to the right subtree? ...

How Can This Recursive Function Work?

I can't figure out how this works, to my mind, once it gets to the answer it doesn't do anything with it. Node* FindNode(Node *rootNode, int data) { if (!rootNode) return NULL; else { if (rootNode->data == data) return rootNode; else { FindNode(rootNode->left, data); FindNode(rootNode->right, data); } ...

Treap with implicit keys

There's a data structure called treap: that's a randomized binary search tree, which is also a heap on randomly generated so-called "priorities". There's a variation of this structure, where keys are implicit, they aren't stored in the tree, but we consider the ordered index of the node in the tree as this node's key. We need to store s...

Convert Binary Tree -> BST (maintaining original tree shape)

I have a binary tree of some shape. I want to Convert it to BST search tree of same shape. Is it possible? I tried methods like - Do In-order traversal of Binary Tree & put contents into an array. Then map this into a BST keeping in mind the condition (left val <= root <= right val). This works for some cases but faile for others. ...

Real world pre/post-order tree traversal examples

I understand pre-order, in-order, and post-order tree traversal algorithms just fine. (Reference). I understand a few uses: in-order for traversing binary search trees in order, pre-order for cloning a tree. But I can't for the life of me come up with a real world task that I'd need post-order traversal to accomplish. Can you give me ...

Which is faster: a "radix tree" or a "b-tree"

For processing language, as in regular dictionary words, which would be faster at reading, a radix tree, or a regular b-tree? Is there a faster method, such as a dictionary with buckets & hashing? ...