数据结构:第5章学习小结

本章学习内容:学习了新的一种数据结构——树,树的存储方式同样有两种,顺序和链式结构,但在实际应用过程中,存在两种结构一起打包使用的情况,而且这样会使得解题更加方便;重点学习了二叉树。

然后本章内容掌握的比较好的地方在于二叉树的三个遍历:先序,中序,后序;

这三种遍历方式通过递归函数形式实现,区别在于cout语句的放置位置
例如:
void Preorder(Tree T)//先序遍历;如果cout语句放在两个Preorder中间便是中序,两者之后便是后序;
{    if(T==NULL) return;
     else{
         cout << T->data;
         Preorder(T->lch);
         Preorder(T->rch);
}
先序遍历是先输出根节点,再输出左子树,后输出右子树;中序遍历是先输出左子树,然后根结点,最后右子树;后序遍历则是先输出左子树,然后右子树,最后根节点;
其中,比较容易犯错是再后面两点,刚学习的时候,脑子惯性思维是左子树的输出与先序一样,其实不然,要注意的是,中序和后序输出时的左右子树也需要按照同样的中序后续输出,并不是将根节点放在中间输出其他不变就行;

然后就是作业方面,从老师的手把手教打代码中学习到了找寻根节点的一个方法,用bool数组可以很好找出根节点,还有c++里边存在的队列函数的使用方法,实践题的第二题暂时还没有找到好的方法去解决,希望自己能够尽快解决;

最后就是分组代码,这次分组代码没有转变思路,一整节课下来脑子陷入死胡同,没有很好解答问题,导致任务没有很好完成。

上一篇:589. N叉树的前序遍历


下一篇:基于二叉树的递归遍历算法分析(先,中,后)