文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>二叉查找树转换成有序的双向链表

二叉查找树转换成有序的双向链表

时间:2010-10-14  来源:chenping2008

首先对于二叉查找树的定义和性质,以及如何得到二叉查找树某个节点的子树下的最大值和最小值和插入一个值的内容可以参考这两篇文章:

(1)http://www.cnblogs.com/chenping-987123/archive/2010/09/25/1834341.html

(2)http://www.cnblogs.com/chenping-987123/archive/2010/09/26/1836133.html

现在有一个二叉查找树如下所示:

 

再insert 9 这个节点的时候

 

然后可以要输出的双向链表为:1 2 3 4 5 6 9 10 12

关于双向链表的知识,在数据结构的书中都有了很好的解释。

具体的程序如下:

BSTreeToList(root);

            Console.WriteLine("********************BSTreeToList***************");

            while (root.left != null)

            {

                root = root.left;

            }

            while (root != null)

            {

                Console.Write(root._value.ToString() + " ");

                root = root.right;

            }

private static void BSTreeToList(MyNode root)

        {

            if (root.left != null)

            {

                BSTreeToList(root.left);

            }

            if (root.right != null)

            {

                BSTreeToList(root.right);

            }

            MyNode max = TreeMax(root.left);

            MyNode min = TreeMin(root.right);

            if (max != null)

            {

                max.right = root;

            }

           root.left = max;

           if (min != null)

           {

               min.left = root;

           }

            root.right = min;

        }

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载