面试作业——无限极树的实现
我表弟计算机大四即将毕业,这几天在这边找工作,面试要求显示无限极树,树目录下挂有图片文件,点击目录可显示图片文件。表弟实践经验不足,在学校学的都是些理论,对算法与数据结构了解的也甚少,搞了一天没有个结果。晚上只能由我操刀来完成面试作业,以便让表弟通过面试,以后再慢慢引导他学习。现在的大学生真的需要加强自己能力培养,无语。
现贴上无限极树的代码(采用递归算法实现),供后来者学习,这是很多应用中都用到的东东,但我追求代码简洁。程序功能说明:通过递归动态在控件treeView中生成目录树,给treeView的Tag属性赋值,是为了点击节点时再做其他的应用;
private void Form1_Load(object sender, System.EventArgs e)
{
TreeNode node = new TreeNode(); //这里是创建一个根节点
node.Text = "根结点";
treeView1.Nodes.Add(node);
node.Tag = 0;//给根结点赋值0;
CreateChildTree(node, 0); //调用创建树的方法
treeView1.ExpandAll();
}
protected void CreateChildTree(TreeNode parentNode, int parentID) //创建树
{
string myConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db.mdb";
string mySelectQuery = "select * from t_nodes where p_id = " + parentID;
myConnection = new OleDbConnection(myConnString);
OleDbCommand myCommand = new OleDbCommand(mySelectQuery,myConnection);
myConnection.Open();
OleDbDataReader myReader;
myReader = myCommand.ExecuteReader();
while (myReader.Read())
{
TreeNode myNode = new TreeNode(myReader["name"].ToString());
myNode.Tag = myReader["id"];
parentNode.Nodes.Add(myNode);
CreateChildTree(myNode,(int)myReader["id"]); //递归显示出子节点
}
myReader.Close();
myConnection.Close();
}
评论
个人觉得比较重要的还是使用类似层次码之类的东西来构造树。从数据库中取出来的时候就已经形成了树的结构
- 浏览: 89306 次
- 性别:

- 来自: 广东

- 详细资料
搜索本博客
我的相册
共 5 张
最近加入圈子
最新评论
-
人间如风来烟去,几片光彩 ...
世间有百味,唯有淡淡的水可以一辈子品尝都不会厌倦。 平淡就是福,能够珍惜不容易。
-- by fshhui -
我生来忧伤
过去的你已不是今天的你 今天的你也不是明天的你 明天的你更不可预见 所以过去的 ...
-- by fshhui -
透过镜头抒写“程序人生” ...
人到中年,身上的担子越来越重,想的东西自然就多了。有同感。 可是能够放下的能有几 ...
-- by fshhui -
VBA简单实现两个Excel文 ...
你好。 请你尊重别人,不要随便透露别人的贷款信息!也许你是无心的,但已经给我造成 ...
-- by baizi17 -
出差一个月
去哪里学习?
-- by longaiqun001






评论排行榜