1 引言

在最近几天,一直再用c语言来进行数据结构的实训,实训的内容是用一个多叉树来实现家谱图.在之前大一学习数据结构和这学期的数据结构课上的时候,只是单纯地学了学它的实现原理和算法,没有注重具体的代码实现.这对于学习计算机这类课程来说,是一种错误的方式.因为计算机一类的课程,本来就是很注重实践的.没有自己亲自动脑思考过写过,你说你学过数据结构,完全不现实.而且让你自己也觉得不踏实.

2 过程

在实训的过程中,因为学习过c++和java,渐渐的抛弃之前用c语言那样完全按照流程式的方式来完成方法功能,想想确实是不明智的.在高耦合状态下的代码,要是修改起来,可能会将整个方法重写,浪费时间.如果按照面向对象一类语言的方式来考虑写法,你就完全不会想刚学完c语言的人写的代码一样,按照功能来划分,按需返回.

另一方面,在实训过程中,结构体的定义方面也有不少考虑的地方,对于这次的实训,我是将配偶节点和孩子节点放到了一块:

typedef struct TreeNode

{

int Num; // 孩子数目

char Name[20];// 名字

char Sex; // 性别 男M女F

struct TreeNode * NextNode[20]; //(孩子节点)

struct TreeNode * Parent; // 祖先节点

}TreeNode;

其实刚开始没有这么想,因为按照一般的思路,肯定是将配偶节点类似于父母节点一样单独拿出来.但是这样的话,会在结构体又多出一个指针.不烦如此,在表示当前节点和配偶节点的孩子节点的时候,两个节点你都要进行关联,这杨做会让你有种很错乱的感觉.如果像这样将配偶节点放到孩子节点里面,作为孩子节点集合的第一个.在表示于孩子节点之间的关系的时候,尤其是通过配偶节点来查询和显示孩子节点的时候,我们可以通过查询的配偶节点的配偶(这样说可能有点绕口,见下图).这样做之前要注意的是,在树中配偶节点的创建时,别忘了将配偶节点也反向绑定在当前节点上,不然遍历和查询的时候会出错.

举例:通过儿媳一节点查询孙子一节点就要通过儿子一节点来.

3 心得总结

其实,在用代码写一个具体的东西的时候,不能是像当初学习时的那种心态–只是实现当前功能明白原理就可以的,必须自己新身经历一遍,具体细节思考,亲自动手写写.可以先从常规思路出发,期间不断寻求更加快捷高效的方式来改进.还有不管用的是面向对象的语言还是面向过程的语言,在考虑问题的大方向上是一致的,要根据具体语言的特点来对应进行变换.将代码的功能尽量细分,按照功能来区分.类比于面向借口的思想.在完成整个系统的框架之后,按功能来一步步实现.以上就是在实训过程中的体会.

c语言数据结构实训报告总结,数据结构实训心得相关推荐

  1. 北京电子科技学院c语言实验报告,最新单片机 实训报告电子万年历实训报告.doc...

    最新单片机 实训报告电子万年历实训报告 河南工程学院 单片机 实训报告 学 院 电气信息工程学院 专 业 电气工程及其自动化 组员及学号 李 东 盼 201250712138 高 辉 20125071 ...

  2. mysql综训实训报告总结_实训报告总结收获.doc

    实训报告总结收获 实训报告总结收获实训报告总结收获篇一 <实训 收获总结报告> 实训总结报告 -----基于RFID的码头货物自动采集系统 项目简要概述: 1) 开发环境:Window x ...

  3. 计算机组装实训报告模板,计算机实训报告范文模板:计算机实训报告范文

    实习报告网权威发布计算机实训报告范文模板,更多计算机实训报告范文模板相关信息请访问实习报告网. 一.实训目的 1. 贯彻坚强实践环节和理论联系实际的教学原则,增加学生对专业感性认识的深广度,运用所学知 ...

  4. 计算机微机组装实训报告,微机组装实训报告_相关文章专题_写写帮文库

    时间:2019-05-12 08:39:04 作者:admin 计算机组装与维护实训报告 班 级: 姓 名: 学 号: 指导老师: 二〇一四年六月 微机组装与维护实训报告 一.实训目的 1.能够将零散 ...

  5. c语言实现一元多项式程序报告设计,数据结构课程设计报告一元多项式的计算..doc...

    数据结构课程设计报告一元多项式的计算. 题目:一元多项式的计算 --链表 摘要(题目) 一元多项式计算 任务:能够按照指数降序排列建立并输出多项式: 能够完成两个多项式的相加.相减,并将结果输入: 目 ...

  6. 单片机C语言步进电机实训报告,步进电机控制实训报告.doc

    步进电机控制实训报告 2010/2011学年第学期 专用周 课程名称 :班 级 : : : 教学周数 : 地 点 : 指导教师 :介绍了一种基于AT8952单片机步进电机的设计,系统分为.LCD显示步 ...

  7. java坦克大战 实训报告_程序设计实训坦克大战实验报告

    <程序设计实训坦克大战实验报告>由会员分享,可在线阅读,更多相关<程序设计实训坦克大战实验报告(12页珍藏版)>请在金锄头文库上搜索. 1. 程序设计实训报告坦克大战专业班级: ...

  8. 计算机应用基础指法实训报告,计算机基础实训报告

    计算机基础实训报告 本文关键词:实训,计算机,基础,报告 计算机基础实训报告 本文简介:陕西国防工业职业技术学院<计算机应用基础>实训报告班级物流3102姓名郝斌学号88310222指导老 ...

  9. linux实验实训报告,linux实验实训报告.doc

    linux实验实训报告.doc 内蒙古商贸职业学院计算机系 学 生 校 内 实 验 实 训 报 告 2011--2012学年 第二学期 系部:计算机系 课程名称:Linux网络环境管理 专业班级: 内 ...

  10. asp实训报告摘要_asp实训报告总结.doc

    asp实训报告&总结.doc 南京化工职业技术学院信息技术系1信息技术系实训报告实训名称ASPNET程序设计实训2013年6月23日南京化工职业技术学院信息技术系2前言实训的目的通过一个具体的 ...

最新文章

  1. 关于工大瑞普Dynamips模拟器
  2. JS输入框统计文字数量
  3. python的os模块批量获取目标路径下的文件名
  4. Hadoop MapReduce实例:按手机上网总流量降序排序代码实现及结果演示
  5. OpenGL之利用模型视图矩阵和投影矩阵让球体自动旋转
  6. undefined reference to `cv::VideoCapture::VideoCapture()'
  7. 洛谷试炼场:单词接龙
  8. Android 分贝测试仪功能
  9. 微信小程序简单爱心点赞动画
  10. Suse12网络设置
  11. Golang学习——error错误处理浅谈
  12. 5. 有 2*n 的一个长方形方格,用一个1*2 的骨牌铺满方格
  13. ffmpeg安装过程记录
  14. C基础学习之C 存储类
  15. 基础知识,DSP芯片介绍
  16. 2023年全国最新会计专业技术资格精选真题及答案52
  17. 解决开放平台的证书错误:ValidatorException:PKIX path validation failed
  18. 多个PDF怎么合并?赶快看这篇文章学习一下
  19. cordova电池插件
  20. 华为mate30epro和mate30pro的区别 购买哪个性价比高?

热门文章

  1. Python之利用marshmallow实现序列化与反序列化
  2. Mysql 笔记(二)
  3. C# 命名空间中不存在类型或命名空间名System.XXX
  4. DXP改变字体的方法
  5. wordpress 更改excerpt的长度,设置excerpt后面'[...]'的字样和链接
  6. [审核]App审核被拒绝(本地网络权限弹框“Local Network”)
  7. 关于C语言中的绝对值函数
  8. 网站流量日志数据分析系统与技术架构
  9. python高级--美国人口分析(Numpy,Pandas)
  10. html超链接地址隐藏,如何在Excel中隐藏超链接地址?