C语言之二叉树知识汇总

  很久没有写随笔了,上次的matplotlib还没写完,总是想找个时间写,但由于工作、毕设以及忙于学习深度学习知识未能继续编写,只能后续再来完善,此次总结是捡起以前写过的代码(为了提升自己的C语言算法实现速度),重新学习一遍二叉树知识。

  此篇文章将会很长,也无法一时间写完,将分多个阶段写完。主要看代码注释吧!!!!

  说起二叉树,得从它的定义说起。

  一、什么是二叉树?

  不同的场景下二叉树的定义略有不同,通俗地讲,我们可以理解为类似于树且只有两个子节点的一种数据结构即可称之为二叉树。

  1.1什么是树?

  对于这一块知识我们可不深究,但有兴趣的可以看下面这段内容,跳过也无关紧要。

  《算法设计与分析基础》中描述:树,更精确地说,自由树就是连通无回路图(对于图又是什么,大家就需要另外查找相关知识了,这里不作拓展)。无回路但不一定连通的图称为森林(forest)。言外之意就是森林有一个或多个树。

 

  如图所示,左边即可看作一棵树,右边可看作一个森林,包含了三棵树。

  对于树,我们还可以继续划分为有根树、有序树,其中二叉树就是所谓的有序树的一种。

  有根树:顾名思义,有“根”,即人为地将一颗自由树选定其中某一个节点作为“根”,剩下节点按层次从上往下排列,出现“深度”概念。

  (此处应有展示图片)

  第一天,,到此结束(写了半小时)

 

posted @ 2022-03-10 23:22  兴财啊  阅读(98)  评论(0编辑  收藏  举报