假设根节点为第一层,完全二叉树有n+1层,且第n+1层得节点数位k个。
10年积累的成都网站设计、网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有西城免费网站建设让你可以放心的选择与我们合作。
则完全二叉树上面n层总节点数
2^n-1=700,解得
n=9。又完全二叉树要排满一层才排下一层,所以取
n=9;
则前9层得总节点数位
2^9-1=511个。所以第10层得节点数为
700-511=189个,它们都是叶子节点。同时第九层中是它们的父节点的有
[189/2]
=
95
个,又第九层有节点数2^8=256个,所以第九层有叶子节点:256-95
=161个。所以总的叶子节点有:189+161=350个
在C#Form1的左边加一个treeview控件。
在其中填入节点1和节点2.他们的Text分别叫:主机1、主机2.然后再在Form1的右边拉一个tabcontrol控件。
他的里边当然自动生成tabpage1和tabpage2.再填一个空的tabpage3.
要求:当执行的时候,显示空的tabpage3。
点主机1,tabpage1显示,tabpage2隐藏。点主机2,tabpage2显示,tabpage1隐藏。
以下使用NodeMouseClick事件,相应鼠标左键点击2个节点,设置Tag属性(当然判断text属性也可以,但是不建议)
private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
if (e.Node.Tag.ToString() == "1")
{
tabPage2.Parent = null;
tabPage1.Parent = this.tabControl1;
}
if (e.Node.Tag.ToString() == "2")
{
tabPage1.Parent = null;
tabPage2.Parent = this.tabControl1;
}
}
}
通过判断当前节点有没有子节点或父节点。
若有子节点,无父节点,则为根节点;
若有父节点,无子节点,则为最终子节点;
若有父节点,有子节点,则为根节点和最终子节点之间的节点。
很简单:
Private Sub TreeView1_BeforeExpand(sender As Object, e As System.Windows.Forms.TreeViewCancelEventArgs) Handles TreeView1.BeforeExpand
MsgBox(e.Node.Text)
End Sub