c语⾔数据结构实训报告总结,数据结构实训⼼得
1 引⾔
在最近⼏天,⼀直再⽤c语⾔来进⾏数据结构的实训,实训的内容是⽤⼀个多叉树来实现家谱图.在之前⼤⼀学习数据结构和这学期的数据结构课上的时候,只是单纯地学了学它的实现原理和算法,没有注重具体的代码实现.这对于学习计算机这类课程来说,是⼀种错误的⽅式.因为计算机⼀类的课程,本来就是很注重实践的.没有⾃⼰亲⾃动脑思考过写过,你说你学过数据结构,完全不现实.⽽且让你⾃⼰也觉得不踏实.
2 过程
在实训的过程中,因为学习过c++和java,渐渐的抛弃之前⽤c语⾔那样完全按照流程式的⽅式来完成⽅法功能,想想确实是不明智的.在⾼耦合状态下的代码,要是修改起来,可能会将整个⽅法重写,浪费时间.如果按照⾯向对象⼀类语⾔的⽅式来考虑写法,你就完全不会想刚学完c语⾔的⼈写的代码⼀样,按照功能来划分,按需返回.
另⼀⽅⾯,在实训过程中,结构体的定义⽅⾯也有不少考虑的地⽅,对于这次的实训,我是将配偶节点和孩⼦节点放到了⼀块:
typedef struct TreeNodec语言指针实验总结
{
int Num; // 孩⼦数⽬
char Name[20];// 名字
char Sex; // 性别 男M⼥F
struct TreeNode * NextNode[20]; //(孩⼦节点)
struct TreeNode * Parent; // 祖先节点
}TreeNode;
其实刚开始没有这么想,因为按照⼀般的思路,肯定是将配偶节点类似于⽗母节点⼀样单独拿出来.但是这样的话,会在结构体⼜多出⼀个指针.不烦如此,在表⽰当前节点和配偶节点的孩⼦节点的时候,两个节点你都要进⾏关联,这杨做会让你有种很错乱的感觉.如果像这样将配偶节点放到孩⼦节点⾥⾯,作为孩⼦节点集合的第⼀个.在表⽰于孩⼦节点之间的关系的时候,尤其是通过配偶节点来查询和
显⽰孩⼦节点的时候,我们可以通过查询的配偶节点的配偶(这样说可能有点绕⼝,见下图).这样做之前要注意的是,在树中配偶节点的创建时,别忘了将配偶节点也反向绑定在当前节点上,不然遍历和查询的时候会出错.
举例:通过⼉媳⼀节点查询孙⼦⼀节点就要通过⼉⼦⼀节点来.
3 ⼼得总结
其实,在⽤代码写⼀个具体的东西的时候,不能是像当初学习时的那种⼼态–只是实现当前功能明⽩原理就可以的,必须⾃⼰新⾝经历⼀遍,具体细节思考,亲⾃动⼿写写.可以先从常规思路出发,期间不断寻求更加快捷⾼效的⽅式来改进.还有不管⽤的是⾯向对象的语⾔还是⾯向过程的语⾔,在考虑问题
的⼤⽅向上是⼀致的,要根据具体语⾔的特点来对应进⾏变换.将代码的功能尽量细分,按照功能来区分.类⽐于⾯向借⼝的思想.在完成整个系统的框架之后,按功能来⼀步步实现.以上就是在实训过程中的体会.

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。