数据结构与算法课程设计 心得体会 学习体会 (3)

课程设计的心得体会

陈康荫 0804012007 08级计科系计本(2)班

完成了这次的二元多项式加减运算问题的课程设计后,我的心得体会很多,细细梳理一下,有以下几点:

1、程序的编写中的语法错误及修改

因为我在解决二元多项式问题中,使用了链表的方式建立的二元多项式,所以程序的空间是动态的生成的,而且链表可以灵活地添加或删除结点,所以使得程序得到简化。但是出现的语法问题主要在于子函数和变量的定义,降序排序,关键字和函数名称的书写,以及一些库函数的规范使用,这些问题均可以根据编译器的警告提示,对应的将其解决。

2、程序的设计中的逻辑问题及其调整

我在设计程序的过程中遇到许多问题,首先在选择数据结构的时候选择了链表,但是链表的排序比较困难,特别是在多关键字的情况下,在一种关键字确定了顺序以后,在第一关键字相同的时候,按某种顺序对第二关键字进行排序。在此程序中共涉及到3个量数,即:系数,x的指数和y的指数,而关键字排是按x的指数和y的指数来看,由于要求是降幂排序且含有2个关键字,所以我先选择x的指数作为第一关键字,先按x的降序来排序,当x的指数相同时,再以y为关键字,按照y的指数大小来进行降序排列。

另外,我在加法函数的编写过程中也遇到了大量的问题,由于要同时比较多个关键字,而且设计中涉及了数组和链表的综合运用,导致反复修改了很长的时间才完成了一个加法的设计。但是,现在仍然有一个问题存在:若以0为系数的项是首项则显示含有此项,但是运算后则自动消除此项,这样是正确的。但是当其不是首项的时候,加法函数在显示的时候有0为系数的项时,0前边不显示符号,当然,这样也可以理解成当系数为0时,忽略这一项。这也是本程序中一个不完美的地方。

我在设计减法函数的时候由于考虑不够充分就直接编写程序,走了很多弯路,不得不停下来仔细研究算法,后来发现由于前边的加法函数完全适用于减法,只不过是将二元多项式B的所有项取负再用加法函数即可,可见算法的重要性不低于程序本身。

3、程序的调试中的经验及体会

我在调试过程中,发生了许多小细节上的问题,它们提醒了自己在以后编程的时候要注意细节,即使是一个括号的遗漏或者一个字符的误写都会造成大量的错误,浪费许多时间去寻找并修改,总结的教训就是写程序的时候,一定要仔细、认真、专注。

我还有一个很深的体会就是格式和注释,由于平时不注意格式和注释这方面的要求,导致有的时候在检查和调试的时候很不方便。有的时候甚至刚刚完成一部分的编辑,结果一不注意,就忘记了这一部分程序的功能。修改的时候也有不小心误删的情况出现。如果注意格式风格,并且养成随手加注释的习惯,就能减少这些不必要的反复和波折。还有一点,就是在修改的时候,要注意修改前后的不同点在哪里,改后调试结果要在原有的基础上更加精确。

 

第二篇:数据结构与算法课程设计 心得体会 学习体会 (4)

课程设计的心得体会

姓名:李洋 学号:0804012035 班级:计本二班

这次试验我做的是英文文章的压缩和解压缩,要求使用哈弗曼编码实现这次过程。首先统计英文文章中各字符出现的频率,并把其作为建立哈弗曼树的叶子节点建树,然后读取每个叶子节点的哈弗曼编码。在把这些编码按顺序存放在一个文件中,然后没8位强制转化为整形数字,再把整数强制转化为字符存储,即作为压缩后的文件存放。解压过程,即是首先读取压缩后的文本文件,把字符转化为整数,在用二进制数表示,最后存放起来,而后在用header【i】.bits与刚存放的二进制字符串进行比较,如果相等,则将header【i】.b写入解压后文件。解压时,就是读取压缩后的文本文件,每读取一个字符时,将其强制转化为整数,然后在将这个整数转化为二进制数,之后在将其和原先的字符编码进行比较,如果相等,则删除之前相等的那部分二进制编码,然后继续读取压缩后的文档,继续以这种方法处理,直到把压缩文档全部处理完毕,即解压成功,之前已经生成一个新文本文档,一边解压,一边存放字符。

一开始做程序时,在解压过程遇到了问题,不知道如何使用哈弗曼编码进行压缩,如果只是将二进制代码存放的话,根本起不到压缩作用,最后使用了一个转化,但是在解压缩过程中又遇到了问题,后来发现按原路返回即可实现解压。

本次试验结束,我首先对于文件操作有了一定的了解,另外对于数据结构与算法中的哈弗曼这一节内容有了较为清晰的了解了。

做了这次课程设计着实感觉到了不少困难,对于数据结构这一门课,有了不少心得。

第一、熟记各种数据结构类型,定义、特点、基本运算(分开点一点也没多少东西,难度不大,但是基本)。

第二、文本文档的读取,这个程序中很大一部分都是用了文件,所以熟悉这部分着实重要。

第三,多做习题,看题型,针对题型来有选择演练,在课程设计中游刃有余。

数据结构看上去很复杂,但你静下心来把书扫上几遍,分解各个知识点,这一下来,学数据结构的思路就会很清晰了。

而这两周也确实学到了不少东西,我的程序主要的是关于文件的读取以及哈弗曼树的建立,并且对于一篇文章使用哈弗曼编码进行压缩和解压缩的方法可以说比较清晰明了了。课程设计对我们来说是一个非常难得机会,这可以说是一次实战,可以提高自己独立解决问题的能力,另外也知道如何去设计程序解决一个实际问题,合理利用这次机会,可以得到很大的提高。

相关推荐