数据结构第五章学习心得
本章我们学习了树与二叉树,在正式学习之前对树和二叉树有一定的了解,但在深入学习以后,还是有学到很多新的东西。树有很多专业术语:度 深度等等 如果不能记清他们的意义,基础题目都没有办法做。
首先我想说的是储存结构:
顺序结构 通过结构体内简单的int parent 将子结点与双亲结点连接起来 而特殊的连接规则 则形成了一个完整的树 但是我个人对这种结构类型的树比较难以理解 或者觉得有点抽象
链式结构:通过链式存储 以指针形式 将双亲结点和子结点连接起来 这种方法我个人认为十分具体好理解 掌握的很快。 但是这种存储结构在存储非二叉树时容易遇到麻烦(小组协作)
第二 先序 中序 后序:
先序可以说是和正常的思维 从上到下 从左到右
中序 是 递归 中序 以中序的视角 看每一个结点
后序 和中序 一样
其实先序中序后序 本质都是递归的思维。
void PreOrderTraverse(BiTree T) { if(T) {cout<<T->data;//访问空节点 PreOrderTraverse(T->lchild);//遍历下一个左节点 PreOrderTraverse(T->rchild);//遍历下一个右节点 } } void InOrderTraverse(BiTree T) { if(T) { InOrderTraverse(T->lchild); cout<<T->data; InOrderTraverse(T->rchild); } }
作业:作业问题不大,可以说掌握的比较好
实践一 1 有手把手教代码 花了一点时间去理解
实践一 2 有点难以实现 代码不知道为什么无法实现功能 花了很长时间才得以解决
小组合作: 这次小组合作 我们在讨论用什么数据结构和怎么定义花费了很多时间 在函数的设计和实现发生了很多的问题 到最后函数无法运行 发现定义就出现了问题 可以说比较失败吧 希望下次可以更加细心注意到问题 而且dv好像真的没办法显示出一些重要错误(栈空间满等)作为程序设计小白 我们根本没见过这样的世面 各种异常退出 各种无法解决 希望以后也能变成能够自如应对异常情况的人吧。