数据结构课程设计报告_二叉树_哈弗曼_链表

数据结构课程设计报告_二叉树_哈弗曼_链表

ID:6809397

大小:200.50 KB

页数:19页

时间:2018-01-26

数据结构课程设计报告_二叉树_哈弗曼_链表_第1页
数据结构课程设计报告_二叉树_哈弗曼_链表_第2页
数据结构课程设计报告_二叉树_哈弗曼_链表_第3页
数据结构课程设计报告_二叉树_哈弗曼_链表_第4页
数据结构课程设计报告_二叉树_哈弗曼_链表_第5页
资源描述:

《数据结构课程设计报告_二叉树_哈弗曼_链表》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、北京XX大学数据结构课程设计(报告)院(系):计算机与信息工程学院班级:软件082学号:XXXXXXX姓名:XXXXXXX同组学生:_____________________指导教师______________________成绩______________________实践地点:______________________实践时间:2010年5月1日至2010年5月20日二叉树的操作:实验目的:建立二叉树,建立后的先序。中序。后序。的遍历,及输出。思路:用递归的方法建立二叉树,用先序建立,然后调整建立时左右孩子,和根

2、结点的顺序,就完成了,三种顺序的遍历。遇到的困难:在先序建立时忘记了用#符号表示该节点没有孩子。如何解决的:用if(ch=='#')T=NULL;语句解决。收获:明白了,二叉树的三种建立,和他们之间的区别以及递归的一些简单的应用。运行结果:输入数字元素用#表示结点没有左孩子或右孩子。然后屏幕上显示出三种顺序的遍历。#include#include#defineNULL0#defineOVERFLOW-2#defineOK1typedefintstatus;typedefstru

3、ctTreeNode{chardata;TreeNode*lchild,*rchild;}*diaoTree;statusCreat_Tree(diaoTree&T);statusPreorder_Traversal(diaoTree&T);statusInorder_Traversal(diaoTree&T);statusPostOrder_Traverse(diaoTree&T);voidmain(){diaoTreet;cout<<"先序建立:";cout<

4、e(t);cout<<"先序遍历:";Preorder_Traversal(t);cout<>ch;if(ch=='#')T=NULL;else{T=(diaoTree)malloc(sizeof(TreeNode));if(!T)exit(OV

5、ERFLOW);T->data=ch;Creat_Tree(T->lchild);Creat_Tree(T->rchild);}returnOK;}statusPreorder_Traversal(diaoTree&T){if(T){cout<data<<"";Preorder_Traversal(T->lchild);Preorder_Traversal(T->rchild);}returnOK;}statusInorder_Traversal(diaoTree&T){if(T){Inorder_Travers

6、al(T->lchild);cout<data<<"";Inorder_Traversal(T->rchild);}returnOK;}statusPostOrder_Traverse(diaoTree&T){if(T){PostOrder_Traverse(T->lchild);PostOrder_Traverse(T->rchild);cout<data<<'';}returnOK;}哈夫曼编码:实验目的:给出各节点权值的大小,然后建立哈弗曼树,然后根据哈弗曼树给对应的权值生成对应的不等长的二进制编码

7、。思路:先输入权值的个数,然后输入权值的大小,再输入对应权值的英文字母,然后对每个结点的父亲,左右孩子进行初始化赋0,然后用select函数建立哈弗曼树,然后存储根据求出的哈弗曼表建立哈弗曼码,选用左孩子为零右孩子为一,最后得出各个英文字母所对应的不等长的二进制编码。遇到的难点:如何编写select选择函数。如何解决的:先判断所有结点的父亲是否为零,然后把父亲为零的权值放入一个新建立的int行数组中,然后在数组中进行大小排序,先两个树是两个权值最小的。然后再把原数组中两个最小的权值的数组下标给新的结点当左右孩子,新节点就

8、是这两个节点的父亲。收获:了解了哈弗曼树的建立,以及怎样自己编写select函数。运行结果:先输入权值的个数,再输入对应权值的英文字母,再输入对应英文字母的权值的大小,会显示各节点权值的大小,也就是哈弗曼树的建立,在输出各英文字母对应的不等长的二进制编码#include#include

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

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

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