C#树绘图作业
我有一个图表,它的输入是这样的: 7C#树绘图作业,c#,graph,bitmap,tree,drawing,C#,Graph,Bitmap,Tree,Drawing,我有一个图表,它的输入是这样的: 7 1 | 2 1|3 2|4 2|5 5 | 7 3|6 5 | 7 第一个数字是节点数,例如1 | 2表示从1到2有边。节点只能有两个子节点。我需要在位图上绘制它。我写了一个树深度的递归函数,所以我可以划分位图的高度。但是现在我在绘制这棵树时遇到了麻烦,我无法编写用于绘制它的函数。 请给出解决方法的建议。谢谢 for (int i = 0; i < 2; i++) { odku
1 | 2
1|3
2|4
2|5
5 | 7
3|6
5 | 7 第一个数字是节点数,例如1 | 2表示从1到2有边。节点只能有两个子节点。我需要在位图上绘制它。我写了一个树深度的递归函数,所以我可以划分位图的高度。但是现在我在绘制这棵树时遇到了麻烦,我无法编写用于绘制它的函数。
请给出解决方法的建议。谢谢
for (int i = 0; i < 2; i++)
{
odkud = graf[i, 0];
kam = graf[i, 1];
najdiPotomka2(i, kam, vyska);
}
return maxVyska;
for(int i=0;i<2;i++)
{
odkud=graf[i,0];
kam=graf[i,1];
najdiPotomka2(i、kam、vyska);
}
返回maxVyska;
这是在函数中,我就是这样得到深度的,递归函数是:
private Boolean najdiPotomka2(int stupen, int hodnota, int vyska)
{
vyska++;
int tempHodnota = hodnota;
for (int i = stupen + 1; i < pocetRadek; i++)
{
if (graf[i, 0] == tempHodnota)
{
if(najdiPotomka2(i, graf[i,1], vyska))
{
vyska++;
if (vyska > maxVyska) maxVyska = vyska;
if ((i + 1) <= pocetRadek) najdiPotomka2(i, graf[i + 1, 1], vyska - 1);
return true;
}
else
{
najdiPotomka2(i, tempHodnota, vyska-1);
return true;
}
}
}
if (vyska > maxVyska) maxVyska = vyska;
return false;
}
私有布尔najdiPotomka2(int stupen、int hodnota、int vyska)
{
vyska++;
int tempHodnota=hodnota;
对于(int i=stupen+1;imaxVyska)maxVyska=vyska;
如果((i+1)maxVyska)maxVyska=vyska;
返回false;
}
现在我正在做一些步骤,并试图找出我是否可以直接实现这个递归函数的绘图。我还尝试从这个网站实现树结构:但我遇到了错误“构造函数不能调用自身”,但这是另一个问题。根据规则,我认为第一个数字是不必要的,除非你使用
数组,它需要一些固定的init大小。在这种情况下,它与实际输入行数相同。顺便说一句,这看起来像是一些家庭作业。关于解决它的建议,我的建议是:你尝试了什么?你能更详细一些吗关于“我不能为绘制它而编写函数”的问题?我的道歉,这是作业,忘记了编写。我试着编写递归函数来绘制它。你认为当我使用数组时可以绘制它吗?我不知道的主要问题是,我是否应该使用某种结构(数组,或者什么),或者我可以使用某种递归函数(我尝试过,但没有成功)按原样绘制它您的代码使用数组,而您提供的链接使用类和面向对象编程。您的家庭作业需要什么?…它们是非常不同的实现。我可以选择我想要的。我认为将其转换为对象会很好。