1、 数据结构课程设计数据结构课程设计 题目:赫夫曼编码题目:赫夫曼编码 院、院、 系:系:计算机科学与工程学院计算机科学与工程学院 学科专业:学科专业: 计算机科学与技术计算机科学与技术 学学 生:生: 学学 号:号: 指导教师:指导教师: 2010 年 12 月 目目 录录 1 1 课程设计的题目课程设计的题目- 0 0 页页 2 2 课程设计的目的(设计要解决的问题)课程设计的目的(设计要解决的问题)-2 2 页页 3 3 概要设计(函数划分、总体设计)概要设计(函数划分、总体设计)- 2 2 页页 4 4 详细设计详细设计(各函数算法、流程图、程序)(各函数算法、流程图、程序)-3 3 页
2、页 5 5 调试结果调试结果-2323 页页 6 6 课程设计总结课程设计总结-2424 页页 7 7 心得体会心得体会- 2424 页页 2 一、课程设计的目的: 1了解利用赫夫曼树求解给定权值的字符串的赫夫曼编码的算法思想; 2学习利用计算机程序语言实现赫夫曼树构造的算法; 3利用构造好的赫夫曼树对任一字符串求解其赫夫曼编码,以此熟悉赫夫 曼编码的整个求解过程; 二、概要设计: (一)函数划分: 功能模块总共分为四个块, 由四个主要的函数来实现, 分别为: 1linklist calculation(char temp,int n)-统计字符种类及各 个字符在字符串中出现次数的函数:用 t
3、emp接收用户输入的字符串,将字符 串存入一个链表当中,链表的每个结点存储字符串的一个字符,然后用两个指针 p 和 t,查找字符串中相同的字符,将相同的字符结点删除,只保留一个,并且 在保留的那个字符结点中统计当前字符的权值(即其在字符串中出现的次数) , 统计完成后将链表的头结点返回; 2status auto_calculation(linklist L)-自动统计权值的函数, 以每个字符在字符串中出现的次数作为其权值:将 calculation()中统计的各个 字符在字符串中出现的次数作为权值存储到全局数组 w 中; 3status input_weight(linklist L)-手动输入各个字符权值的函 数:对之前建立好的存储字符串中每种字符信息的链表的结点进行操作,手动输 入每个字符的权值,并将其对应的存储在每个结点的权值变量 weight 中,待链 表中所有字符权值手动输入完毕后, 再将链表中存储的每种字符的权值赋给存储 权值的全局数组