## 遍历二叉树获取数据 原

我只是一只小小鸟

1.需求

tree 的初始值（1（2,3（4,5（69））8）））

2.具体实现

``````using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
/// <summary>
/// 设计树结构
/// </summary>
public sealed class Tree
{
private int _NodeValue;//节点值
private Tree _LeftChlidNode;//左节点
private Tree _RightChlidNode;//右节点
/// <summary>
/// 获取节点值
/// </summary>
/// <returns></returns>
public int GetNodeValue()
{
return _NodeValue;
}
/// <summary>
/// 设置节点值
/// </summary>
/// <param name="value"></param>
public void SetNodeValue(int value)
{
_NodeValue = value;
}
/// <summary>
/// 获取左节点
/// </summary>
/// <returns></returns>
public Tree GetLeftChlid()
{
if (_LeftChlidNode == null)
_LeftChlidNode = new Tree();
return _LeftChlidNode;
}
/// <summary>
/// 获取右节点
/// </summary>
/// <returns></returns>
public Tree GetRightChild()
{
if (_RightChlidNode == null)
_RightChlidNode = new Tree();
return _RightChlidNode;
}
}

/// <summary>
/// 测试
/// </summary>
public sealed class test
{
List<int> result = new List<int>();
/// <summary>
/// 树转list集合
/// </summary>
/// <param name="tree">头结点</param>
/// <returns></returns>
public List<int> TreeConvertToList(Tree tree)
{
if (tree == null)
return null;
Tree leftnode = tree.GetLeftChlid();
Tree rightnode = tree.GetRightChild();
if (leftnode.GetNodeValue() != 0)
{
TreeConvertToList(leftnode);
}
if (rightnode.GetNodeValue() != 0)
{
TreeConvertToList(rightnode);
}
return result;
}

/// <summary>
/// 初始化树
/// </summary>
/// <param name="tree"></param>
/// <returns></returns>
public Tree InialTree( Tree tree)
{
Tree p0_0 = tree.GetLeftChlid();
p0_0.SetNodeValue(1);
Tree p0_1 = tree.GetRightChild();
p0_1.SetNodeValue(8);
Tree a1 = p0_0.GetLeftChlid();
a1.SetNodeValue(2);
Tree a2 = p0_0.GetRightChild();
a2.SetNodeValue(3);
Tree b1 = a2.GetLeftChlid();
b1.SetNodeValue(4);
Tree b2 = a2.GetRightChild();
b2.SetNodeValue(5);
Tree c1 = b2.GetRightChild();
c1.SetNodeValue(69);
return tree;
}
}

}
``````

3.调用显示

`````` class Program
{
static void Main(string[] args)
{
test test = new test();
Tree Roottree = new Tree();//根部
Roottree=  test.InialTree( Roottree);
List<int> result = test.TreeConvertToList(Roottree);
//循环输出
foreach (int     item in result)
{
Console.Write(item.ToString());
Console.Write(",");

}
}
}``````

### 我只是一只小小鸟

iOS-数据结构之链表以及二叉树

（一）前言 对于频繁使用或者是操作的数据应当使用链表，提升效率； （1）链表的优点：链表插入和删除节点付出的代价较小，主要的操作在于prev或next指针的重指向。缺点：链表不能通过下标或...

2016/11/07
149
2

wustor
2017/11/06
0
0
python环境下使用mysql数据及数据结构和二叉树算法（图）

python环境下使用mysql数据及数据结构和二叉树算法（图）： 1 python环境下使用mysql 2使用的是 pymysql库 3 开始-->创建connection-->获取cursor-->操作-->关闭cursor->关闭connection->结束......

2018/08/26
26
0

qq_38646470
2018/01/22
0
0
LeetCode算法题-Merge Two Binary Trees（Java实现）

03/12
0
0

parseint和isNaN用法

23分钟前
3
0
Kylin 精确去重在用户行为分析中的妙用

ApacheKylin
34分钟前
3
0

Pole丶逐
38分钟前
3
0

41分钟前
2
0
PhotoShop 色调：理解直方图／RGB通道信息

47分钟前
6
0