数据结构第五章学习心得

本章我们学习了树与二叉树,在正式学习之前对树和二叉树有一定的了解,但在深入学习以后,还是有学到很多新的东西。树有很多专业术语:度 深度等等 如果不能记清他们的意义,基础题目都没有办法做。

首先我想说的是储存结构:

顺序结构 通过结构体内简单的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好像真的没办法显示出一些重要错误(栈空间满等)作为程序设计小白 我们根本没见过这样的世面  各种异常退出  各种无法解决 希望以后也能变成能够自如应对异常情况的人吧。

相关推荐