软件开发工具论文

软件开发工具论文

ID:71182857

大小:179.50 KB

页数:16页

时间:2021-11-26

软件开发工具论文_第1页
软件开发工具论文_第2页
软件开发工具论文_第3页
软件开发工具论文_第4页
软件开发工具论文_第5页
软件开发工具论文_第6页
软件开发工具论文_第7页
软件开发工具论文_第8页
软件开发工具论文_第9页
软件开发工具论文_第10页
资源描述:

《软件开发工具论文》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、学号:课程论文课程名称《软件开发工具》论文题目《对于赫夫曼编码的心得》学院计算机科学与技术学院专业软件工程班级姓名指导教师张能力2012——2013学年第1学期在大二学期开的一门数据结构课程,在大一的时候就听学长们说,数据结构这门课程很重要,学好了可以为以后的课程奠定下良好的基础,于是心中牢记着学长的这种叮咛,我抱着很认真地态度开始了这门课程的学习。(1)结点的开辟。(2)实现对输入字符串中出现的不同字符及其出现字数的信息记录。(3)用叶子结点构造赫夫曼树。(4)获得构造的赫夫曼树中所有叶子结点的元素及其赫夫曼编码。(5)输出各叶子结点元素及

2、其对应的赫夫曼编码。输出入的字符串的赫夫曼编码。(6)调用各子函数在算法的设计上,由于之前仅仅只是接触的书本上的赫夫曼树的编码,不仅显得有一些单薄,为了做好这个程序,我又在图书馆借阅了大量讲解赫夫曼编码的书籍。首先按照课本中的定义,定义结构体node,其数据成员包括,字符型的元素a和整型元素b和指向node的next指针,来存储叶子结点的内容和权值。定义三个指向node的指针head、p1、p2和字符指针n、t、h,调用setnode()函数开辟一个结点让head指向该结点,p1=head,让n指向输入字符串的第一个元素,当n指向的内容不是‘

3、’时,如果n指向字符串的第一个字符,则开辟一个结点,让p2指向该结点,让t指向字符串的第一个元素,当*t!=‘’并且*t==*n则r++(r为整型,初始值为0),把p2->a=*n,p2->b=r,p1->next=p2,p1=p2,n++,t回到字符串首;否则i++(i为整型,初始值为1)r=0,j=1;让t指向字符串第一个元素,当*t!=‘’,如果*t==*n,r++,t++;让h指向字符串的第一个元素,当h!=n时如果*h==*n就跳出此循环,否则,j++,h++如果i==j则开辟新

4、的结点p2->a=*n,p2->b=r,p1->next=p2,p1=p2;n++,当把最后一个结点连入链表中,p1->next=NULL,然后把p1=head->next,当p!=NULL时输出结点中叶子结点的元素和对应的权值;最后返回head。在对于设置节点的算法时候遇见了麻烦,不知道是该怎样开辟一个新的节点,用new函数对于节点使用后的释放有一定的影响,经过查资料之后,我选择了setnode算法。//setnode()函数的算法:设指向node的指针p,用malloc

5、开辟一个node结点并让p指向该结点,返回p。接下来便是重头戏----构造赫夫曼树了,定义结构体node1,其数据项字符型a(存放叶子结点元素)、整型weight(存放对应权值)、整型sign(起标记作用)、和指向左、右孩子及父母结点的指针lchild、rchild和parent。整体的构思为,定义指向node1的指针p0、p1、p2、p3、p4和整型的m、n、i、j、k1、k2,n=0、p=head->next,当p!=NULL,n++,p=p->next,开

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。