C#算法,我需要处理一个仿二叉树,将这棵树变成DataTable,如下图所示
解决方案 »
- 关于WCF服务和WCF数据服务?
- C# 删除控件的同时怎么能释放他们的内存呢?
- 走到oCR.SetDataSource(ds) 运行结束,不抱错,看不到结果!
- 总店,分店库存管理?成本计算?
- 请教高人指点!
- ********** 一个简单却比较急的问题 ,asp.net datagrid 绑定 dataset。 问题解决马上给分。
- 菜鸟的问题!关于BufferedStream的问题!
- c# web 应用
- 先要做一个网络广告系统,如何实现多个广告(文字、图片或视频),按各自的播放时长(譬如说都播放5分钟)轮换播放?
- 如何用.NET(C#)实现像windows优化大师那样的界面
- 正交表???
- 求教C#中 new string[][]与 new string[,]的区别
而DataTable是二维表,要正确表达树形结构,会要嵌套很多的父子表,费时费力啊。。
{
public binaryTreeNode left;
public binaryTreeNode right;
public int value;
}
//记录用的栈 (说实在还是用List好点)
private Stack<string> tempstack = new Stack<string>();
//临时一个数组用于存放结果 (可以看成datatable)
private List<string> pathlist = new List<string>();
private void GetPath(binaryTreeNode node)
{
//把节点加入栈
tempstack.Push(node.value.ToString());
//判断是否是叶子节点 : true leaf; false branch
if(node.left == null && node.right == null)
{
//leaf, 输出栈里面的内容
pathlist.Add(string.Join(",", tempstack.Reverse().ToArray()));
//出栈
tempstack.Pop();
}
else
{
//branch, 扫描子节点
if (node.left != null) GetPath(node.left);
if (node.right != null) GetPath(node.right);
}
}