How can we find the next highest value in the binary tree?
We have a binary tree and an number is being input. We need to find the next highest number.
How can we find the next highest value in the binary tree?
We have a binary tree and an number is being input. We need to find the next highest number.
Jump to Postshow us your code and we can help you out
Jump to Postplease put the code in code tags
do you have any of this done yourself in c# yet?
Jump to Postthen make an effort, and we will make an effort
if you are having trouble with a specific piece, rather than just though whole thing then let us know, we won't do the work for you
show us your code and we can help you out
What will be the C# version of the below code.
int findSuccessor(self):
succ = None
if self.rightChild:
succ = self.rightChild.findMin()
else:
if self.parent.leftChild == self:
succ = self.parent
else:
self.parent.rightChild = None
succ = self.parent.findSuccessor()
self.parent.rightChild = self
return succ
int findMin(self):
n = self
while n.leftChild:
n = n.leftChild
print 'found min, key = ', n.key
return n
please put the code in code tags
do you have any of this done yourself in c# yet?
I have not done this in C#.
int findSuccessor(self):
succ = None
if self.rightChild:
succ = self.rightChild.findMin()
else:
if self.parent.leftChild == self:
succ = self.parent
else:
self.parent.rightChild = None
succ = self.parent.findSuccessor()
self.parent.rightChild = self
return succ
int findMin(self):
n = self
while n.leftChild:
n = n.leftChild
print 'found min, key = ', n.key
return n
then make an effort, and we will make an effort
if you are having trouble with a specific piece, rather than just though whole thing then let us know, we won't do the work for you
How can I start to convert the code in C# and test it?
did you do it in python or is that some else's?
here's a link that will give you a java version
MAKE AN EFFORT
http://simpleprogrammingtutorials.com/tutorials/bst-overview.php
How will you write
if self.rightChild:
succ = self.rightChild.findMin()
in C#
in c# you have classes, think of it this way
you have a node, and a node on the left and right
each node is connected to another node (rightChild) and (leftChild)
you can't just translate this code to c#, you need to think about what structure you need first
I have a binary tree
50
30 70
10 40 60 80
The below code is not giving the correct result for test cases 80, 83, 60, 11
public partial class Default2 : System.Web.UI.Page
{
public class FindNextHighestNuber
{
public int search(int InputNumber)
{
int NextHighestNuber = "";
int NodeValue = this.RootNode.value;
ActionOnNode(NodeValue, InputNumber);
}
public int ActionOnNode(int NodeValue, int InputNumber)
{
if (NodeValue <= InputNumber)
{
if (this.RightChild.value != "")
{
NodeValue = this.RightChild.value;
ActionOnNode(NodeValue, InputNumber);
}
else
{
return this.Parent.value;
}
}
else
{
if (this.LeftChild.value != "")
{
NodeValue = this.LeftChild.value;
ActionOnNode(NodeValue, InputNumber);
}
else
{
return this.LeftChild.value;
}
}
}
}
}
We have a binary tree
50
30 70
10 40 60 80
The following code doesn't work for 80, 83 , 60, 40
public partial class Default2 : System.Web.UI.Page
{
public class FindNextHighestNuber
{
public int search(int InputNumber)
{
int NextHighestNuber = "";
int NodeValue = this.RootNode.value;
ActionOnNode(NodeValue, InputNumber);
}
public int ActionOnNode(int NodeValue, int InputNumber)
{
if (NodeValue <= InputNumber)
{
if (this.RightChild.value != "")
{
NodeValue = this.RightChild.value;
ActionOnNode(NodeValue, InputNumber);
}
else
{
return this.Parent.value;
}
}
else
{
if (this.LeftChild.value != "")
{
NodeValue = this.LeftChild.value;
ActionOnNode(NodeValue, InputNumber);
}
else
{
return this.LeftChild.value;
}
}
}
}
}
We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.