C#分别用前序遍历、中序遍历和后序遍历打印二叉树


本文摘自PHP中文网,作者大家讲道理,侵删。

C#分别用前序遍历、中序遍历和后序遍历打印二叉树

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

public class BinaryTreeNode

{

    public BinaryTreeNode Left { get; set; }

   

    public BinaryTreeNode Right { get; set; }

   

    public int Data { get; set; }

   

    public BinaryTreeNode(int data)

    {

        this.Data = data;

    }

}

   

    public enum TreeTraversal

    {

        PREORDER,

        INORDER,

        POSTORDER

    }

   

    public void PrintTree(BinaryTreeNode root, TreeTraversal treeTraversal)

    {

        Action printValue = delegate(int v)

        {

            Console.Write(v + " ");

        };

       

        switch (treeTraversal)

        {

            case TreeTraversal.PREORDER:

                PreOrderTraversal(printValue, root);

                break;

            case TreeTraversal.INORDER:

                InOrderTraversal(printValue, root);

                break;

            case TreeTraversal.POSTORDER:

                PostOrderTraversal(printValue, root);

                break;

            default: break;

        }

    }

   

    public void PreOrderTraversal(Action action, BinaryTreeNode root)

    {

        if (root == null)

            return;

   

        action(root.Data);

        PreOrderTraversal(action, root.Left);

        PreOrderTraversal(action, root.Right);

    }

   

    public void InOrderTraversal(Action action, BinaryTreeNode root)

    {

        if (root == null)

            return;

   

        InOrderTraversal(action, root.Left);

        action(root.Data);

        InOrderTraversal(action, root.Right);

    }

   

    public void PostOrderTraversal(Action action, BinaryTreeNode root)

    {

        if (root == null)

            return;

   

        PostOrderTraversal(action, root.Left);

        PostOrderTraversal(action, root.Right);

        action(root.Data);

    }

相关阅读 >>

c#自定读取配置文件类

c#操作mysql的工具类mysqlhelper

c# 四舍五入round函数使用

c#将文件上传、下载(以二进制流保存到数据库)

二叉搜索树插入算法c#

c#分别用前序遍历、中序遍历和后序遍历打印二叉树

c#读取host文件代码

c#读取中文文件乱码的解方法

c#实现图标锁定到windows任务栏或删除图标

c#中登陆账户使用的md5加密算法

更多相关阅读请进入《代码片段》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...