answersLogoWhite

0


Best Answer

The simplest way to do this is to iterate over your general tree and add each value you find to a new binary tree. The logic of the binary tree will take care of the "conversion" for you.

Note: The problem with this is that your "general" tree might already contain data in sorted order. If this is the case and you're doing an in-order traversal, then you just might be building yourself a worst-case tree.

User Avatar

Wiki User

14y ago
This answer is:
User Avatar
More answers
User Avatar

Wiki User

12y ago

While there's no reason why you can't do this, there is little point in doing it other than to prove just how futile an endeavour it would be. A binary tree is used to sort data logarithmically. But every node in a tree should be capable of sorting its own data. Passing sorted data to a binary tree would result in an unbalanced tree that is completely biased towards the right.

Think about it: the root of a tree is directly related to each of its child nodes. Each child node is incomplete by itself. As are their child nodes. And theirs. If we imagine the root node is "A" and the child nodes are "1", "2" and "3", and child "1" has child nodes "a", "b" and "c", the only way to identify each node is via its ancestors, beginning at the root. There are 7 nodes in all, so there are 7 unique identifiers here: "A", "A->1", "A->1->a", "A->1->b", "A->1->c", "A->2" and "A->3".

Passing these identifiers to a binary tree would result in a root node containing "A", pointing to a right node containing "A->1", pointing to a right node containing "A->1->a", and so on. There would never be a left node, so you might as well create a singly-linked list instead. Even if the child nodes were unsorted, you'd still end up with a binary tree with "A" at the root and everything else to its right. And because of the inherent relationship between parents and children, there will always be a bias towards the right. This then forces you to "balance" the tree so there are equal numbers of nodes either side of the root, and equal depths.

If you want to sort a tree, then sort the tree itself. The tree structure has already done most of the work for you by creating relationships between each node and its parent, you've simply got to sort the child nodes within each parent. An internal quick-sort will get the job done far quicker than creating a completely separate structure that has no practical uses without major modification.

This answer is:
User Avatar

User Avatar

Wiki User

9y ago

The algorithm to convert a forest tree into a binary tree in data structure can be quite long. You will need to start out with [head] and end with [finish].

This answer is:
User Avatar

User Avatar

Wiki User

10y ago

hahaha on your face *****

This answer is:
User Avatar

Add your answer:

Earn +20 pts
Q: You want a algorithm to convert tree to binary tree?
Write your answer...
Submit
Still have questions?
magnify glass
imp
Continue Learning about Engineering

What is red and black tree?

It is a data structure that keeps a binary tree balanced. If you want basic operations on your tree to take order log n time (where n is the number of nodes in the tree) you need the depth (maximum length of a path from root to a leaf) to be order log n. That is what is meant by a balanced tree. You can also use treaps, which use random numbers to give balance with extremely high probability.


Convert 16 digit hex key to 64 bit binary in python programming?

>>> hex_val = "ab3795d1c49ef1bb" >>> decimal_val = int(hex_val,16) >>> decimal_val 12337494432384217531L >>> binary_val = bin(decimal_val) >>> binary_val '0b1010101100110111100101011101000111000100100111101111000110111011' #note that the string that represent the binary number starts with '0b'. # you can remove it if you want like this: >>> binary_val = binary_val[2:] >>> binary_val '1010101100110111100101011101000111000100100111101111000110111011'


What is are advatages and disadvatages of bresenham's line algorithm?

1. High accuracy. Comparing to Basic Incremental algorithm (especially if the slope were > 1.) 2. High speed. Comparing to Digital Differenmtial algorithm. 3. Draws the line between any two points. Comparing to Basic Incremental algorithm which can't draw if x0 > x1 ( the format is: (x0, y0), (x1, y1). )


What is the difference between algorithm and flowcharts?

They both are same. Both of them mean a set of instructions. but, an algorithm is a simple flow of instructions whereas in a flowchart the instructions are represented pictorially, and as the name suggest it is a 'flow chart'.


What steps are required form an algorithm to convert a binary number to it's decimal equivalent?

Let's look at an example. If you want to convert the number 100112 to decimal you can split up the number so each digit has an index associated to it: 4 3 2 1 0 1 0 0 1 1 We can then find the decimal value: 24 * 1 + 23 * 0 + 22 * 0 + 21 * 1 + 20 * 1 = 16 * 1 + 8 * 0 + 4 * 0 + 2 * 1 + 1 * 1 = 16 + 0 + 0 + 2 + 1 = 19 So what we need to do is to multiply each of the binary digits by the value of two raised to the index of the digit. This will give you the conversion from any binary number to a decimal number.

Related questions

Give you the algorithm of creating a new binary search tree using c?

i want to know how to give the algorithm password in a computer ?


How do you convert letter into binary?

i want mathmethecaly


What is the hexadecimal of 58880 binary?

58880 cannot be binary. Please check the base for 58880 and then what base you want to convert it to and then resubmit.


How do you convert Binary-to-Decimal and Decimal-to-Binary?

You can use a table to convert binary to decimal & back:MSBBinary DigitLSB2827262524232221202561286432168421Figure out the greatest power that will fit into the number you want to convert to binary. Move to the next lower power of two. If you can fit into the next lower number write down a "1", if it can't put down "0". Put together the binary answer.


What are the applications of binary tree?

just about anything you want to look up quickly.


Why we don't use m way search tree instead of binary search tree?

Well, you might if you want to.


What is the answer of binary decimal plus binary?

If you want to add numbers in different bases, in this case decimal and binary, or do any other calculation that involves different bases for that matter, you have to convert all numbers to a single system first - for example, all to decimal. Then you can do the operation. It is really up to you in what base you represent the final answer. In this example, you can convert back to binary, for example.


How convert the binary number 110101001 to decimal then to octal?

You can use the Windows calculator to do the conversions. If you want to learn how to do it yourself:To convert binary to decimal, multiply the right-most digit with 1, the second digit (from the right) with 2, the third with 4, etc.To convert to octal, group the bits from the right to the left, in groups of 3. Convert each group to a decimal digit.


How will you convert octal to hexadecimal?

Each octal digit is equivalent to three binary digits; each hexadecimal digit is equal to four binary digits. I think the best way to do this conversion is to convert each octal digit into the binary equivalent (3 digits in each case - don't omit the zeros on the left), then convert the binary to hexadecimal by grouping four binary digits at a time (starting from the right). Note that nowadays, most scientific calculators - including the calculator that comes included in Windows - have the ability to do this sort of conversion. If you want to practice doing it yourself, you can still use the Windows calculator to check your calculations.


Is there a formula that can be used to convert Binary to decimal that is straight forward?

If you mean a straight forward algorithm, then yes.I guess you want to know what it is...Start at the left hand end of the binary number with the result (decimal number) set to zerodouble the result and add the current binary digitif there are more binary digits move one binary digit to the right and repeat step 2repeat steps 2 and 3 until all the binary digits have been used.the result is the decimal equivalentfor example converting 101002 to decimal:1. set result to 0, start with the first binary digit (of 10100) which is 12. 2 x 0 + 1 = 13. 2nd binary digit (of 10100) is 02. 2 x 1 + 0 = 23. 3rd binary digit (of 10100) is 12. 2 x 2 + 1 = 53. 4th binary digit (of 10100) is 02. 2 x 5 + 0 = 103. 5th binary digit (of 10100) is 02. 2 x 10 + 0 = 203. no more binary digits4. 101002 = 2010


Algorithm for spanning tree using krushkal?

It's an algorithm to find the spanning tree in decision maths. The method is:list weights in ascending order from smallest weight to largest weight.then starting form the beginning of your list, tick the weights you want to use and cross out the ones which make a cycle. do this till you've reached all the nods then cross out the rest.add up the weights you used to give you the total weight of the spanning tree.


What decimal number is 110 squared in binary?

If 110 is binary, and you want the answer in decimal form,110 in binary = 6 in decimal, so binary 1102 = decimal 62 = 36If 110 is decimal, and you want the answer in binary form,Decimal 1102 = 12100; decimal 12100 in binary is 10111101000100