树的路径
来源:互联网 发布:慢摇吧软件 编辑:程序博客网 时间:2024/04/29 03:56
遍历一个树,把经过的node放到一个list里,找到就打印出。找完了,退一个node出来。
using System;using System.Collections.Generic;using System.Linq;using System.Text;using NUnit.Framework;namespace ClassLibrary{ [TestFixture] public class TreeRouteTests { [Test] public void TreeRouteTest() { List<Node> allNodes=new List<Node>(); for(int i=1;i<=10;i++) { Node node=new Node(); node.Value = i.ToString(); allNodes.Add(node); } allNodes[0].LetNode = allNodes[1]; allNodes[0].RightNode = allNodes[2]; allNodes[1].LetNode = allNodes[3]; allNodes[3].LetNode = allNodes[4]; allNodes[3].RightNode = allNodes[5]; allNodes[5].RightNode = allNodes[7]; allNodes[2].RightNode = allNodes[8]; allNodes[8].LetNode = allNodes[9]; TreeRoute instance=new TreeRoute(); instance.PrintRoute(allNodes[0],8); instance.PrintRoute(allNodes[0],9); } public class Node { public string Value { get; set; } public Node LetNode { get; set; } public Node RightNode { get; set; } } public class TreeRoute { List<Node> passedNodes=new List<Node>(); internal void PrintRoute(Node root, int value) { Visit(root,value); } private void Visit(Node node,int value) { this.passedNodes.Add(node); if(node.Value==value.ToString()) { PrintPassedNode(); } else { if(node.LetNode!=null) Visit(node.LetNode,value); if(node.RightNode!=null) Visit(node.RightNode, value); } this.passedNodes.Remove(node); } private void PrintPassedNode() { foreach (var passedNode in this.passedNodes) { Console.WriteLine(passedNode.Value); } } } }}
- 树的路径
- 26886: 树的路径
- 树的路径覆盖
- 二叉树的路径
- 二叉树的最长路径
- 二叉树的最长路径
- 二叉树的最长路径
- FZU2185 树的路径覆盖
- 【BZOJ1907】树的路径覆盖
- 二叉树的所有路径
- 树的最大路径和
- 二叉树的所有路径
- 二叉树的所有路径
- BZOJ1907 树的路径覆盖
- 二叉树的所有路径
- 二叉树的所有路径
- 二叉树的所有路径
- 树的最小路径覆盖
- 【7gyy】笔者支招:在WinXP上巧关没用的自动刻录功能
- 《数据通信与网络》笔记--SSL/TLS
- 卡特兰数
- 编程之美3.2 电话号码对应英语单词
- 字符串 移位包含
- 树的路径
- 文件指针位置操作
- 内存泄露及内存溢出
- C++ 库研究笔记——拷贝构造函数的一个错误范例
- 【7gyy】教你快速对异常错误进行更正
- Codeforces Round #131 (Div. 2) / 214A System of Equations(枚举&优化)
- 设备模型之一 kobject & kset
- Oracle名称含义列表
- 美女薄情馆7.0.0破解VIP