被二叉树遍历逼疯了-创新互联

这个二叉树中序遍历是真的非常的坑爹

二叉树的遍历

首先,大部分解决方法基本上都是给定二叉树的根节点,然后进行,先,中,后序进行遍历。

我们提供的服务有:做网站、成都网站建设、微信公众号开发、网站优化、网站认证、修文ssl等。为上千企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的修文网站制作公司

不是字面意思上的那种,先就是从头到尾,中就是给定一个中间节点,然后进行前后遍历!,根不是从最后节点开始的。而都是从二叉树的头(根),进行往下遍历开始!

这使我进入了一个误区,我说大部分资料里面的遍历操作为什么那么简洁,短小!原来是这样子弄的。我说为什么没有if判断该节点的父节点是否为null,该节点在父节点的左边还是右边!

如果用我的那种方式进行判断的话,结构会进行很复杂的if判断,是否节点是尾结点,节点下面是否还有子节点,节点上面是否还有父节点,节点是在父节点的左边还是右边(因为如果中序节点的时候,如果给定的节点是在父节点的左边那么它与这个节点在父节点右边时的逻辑完全相反即可)。

并且还要有一种方法进行判断该二叉树是否遍历已经完成。有一种解决方案就是,为结构体(C语言)里面再添加一个元素,用来标识,该节点是否进行了遍历!

递归跟非递归

递归嘛就是多级函数调用,fun(){ fun(){ } } 这样大镜子里面套小镜子无限循环(当然你要设置限制,来能使它跳出循环中。)通过调用递归的方式可以使代码整洁,当然逻辑设计的时候可能比较难一些,因为你要考虑每一个节点在运行这个函数的时候,运行的代码都是一样的!

而非递归就是一个函数里面解决问题。

递归也是循环,只是它的循环程序设计者不用担心,系统会帮你做。

而非递归就是,将递归拆分出来,用循环来实现函数的层叠调用,而每个函数里面的数据用栈来进行存储!

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


本文标题:被二叉树遍历逼疯了-创新互联
网页网址:http://ybzwz.com/article/didjeg.html