算法不会,尚能饭否之树(2)
前一篇博文《算法不会,尚能饭否之树( 1 )》主要讲的是树的一些概念,讲的也不是很全,只是把一些基本的,比较重要的,常用的概念总结了,同时,还有一些别的概念,还需要大家自己下去总结,理解!而本篇博文主要讲的是树的一些基本操作的实现。让大家明白如何去建立一棵树,如何对树进行一些基本的操作。希望看完本博文,对你有用。好了,伙计,有钱的捧个钱场,没钱的捧个人场。让我们现在就开始今天的博客文章之树之旅。
首先,我建立的二叉树是用二叉链表存储的。这个是前提!我没有那么纠结去用三叉链表实现,很麻烦,你懂得,如果要实现某些功能,貌似必须用三叉链表了。不过那些都是后话了(其实,我也不知道是不是后话)。好了,进入课题吧, Guys !
对二叉树进行操作,没有一个颗二叉树,就是你做了很多,那也是没有用的,是吧!对了,所以我们首先开始建立一个二叉树。
建立二叉树的代码如下:
// 用递归的方法建立二叉树
是吧,伙计,注释那是非常的详细。没有像本山大叔那样的,此处省略多少字的!至少我会写来上一句,此处省略一行代码,或者此处省略一行注释,让你猜去吧。不,我不会那么做的,因为你是我的读者!对吧。朋友。
代码就在眼前,别的我就不多说了,如何实现,应该很容易看懂的,哦,对的,是用递归,你应该知道的。你很聪明,同时,你也该清楚每一个结束的节点的值都是 -1 ,是吧,伙计。还有一个问题是,如何在黑白屏下出入建立二叉树的节点值呢?来,不要着急,我给大家演示一下。
3
2 5
6 -1 8 9
-1 -1 -1 -1 -1 -1
如图,你要建立一个含有 3 、 2 、 5 、 6 、 8 、 9 的二叉树,你必须这样输入。如果你问我为什么?我会说,请你去看程序去,还有我会说这是我的程序,你就得这么输入,可以了吗?我比较喜欢横行霸道。哈哈哈。在 DOS 下这样输入: 3 、 2 、 6 、 -1 、 -1 、 -1 、 5 、 8 、 -1 、 -1 、 9 、 -1 、 -1 。是的,就是这样输入,这样输入,你就可以建立上图的二叉树,但是在对二叉树进行计算,或者操作时,都不会对值为 -1 的节点进行操作的。值为 -1 的节点只是一个结束的标志,其实你是可以改的。一般建立二叉树用递归的方法,都必须设立一个递归的层次的结束标志,而我的正好就是 -1. 现在懂了吧。哦,你也该懂了,不是我的霸道。
还有一些其他的操作,我就不一一讲解,是的,很费时间的。因为我要去睡觉了,我把代码下载地址贴上,代码就在 csdn 上下载。
下载地址:http://download.csdn.net/source/3173149
注:本博文的任何 C++ 程序都是在 visual studio 2008 由本人亲自编译通过。如有问题,请使用 visual studio 2008.
如对代码有疑问或者一些不懂的问题,请留言,跟帖提出。谢谢,你我共同进步!