数据结构哈夫曼树代码怎么写

问题描述

数据结构哈夫曼树代码怎么写

哈夫曼树:输入一串只包含abcdefg8种字符的字符串,统计每种字符出现的次数,并据此创建相应的哈夫曼树。

这怎么写

解决方案

统计字符个数这个简单,你创建一个数组,将每个字符的ascii-'a',得到下标,对应下标+1
http://blog.csdn.net/yaoowei2012/article/details/18180769

解决方案二:

http://www.cnblogs.com/shiyangxt/archive/2008/12/05/1348174.html

解决方案三:

哈夫曼编码的代码

时间: 2024-08-29 13:17:17

数据结构哈夫曼树代码怎么写的相关文章

数据结构——赫夫曼树

1 基本概念 赫夫曼树(Huffman Tree)又称为最优树,是一类带权路径长度最短的树.本文仅讨论最优二叉树. 树的路径长度是指从树根到树中其余各个结点的路径长度之和.对具有n个结点的二叉树而言,完全二叉树具有最短的树的路径长度. 若在二叉树中,树叶结点带有权值,则有:结点的带权路径长度定义为从树根到该结点之间的路径长度与该结点上所带权值之积. 若树中有n个树叶结点,且每个树叶结点均带有权值,则有:树的带权路径长度定义为树中所有树叶结点的带权路径长度之和,可记为: 有时,也将树的路径长度称为

数据结构-哈夫曼树运行错误 但调试却正确 一直找不成错误

问题描述 哈夫曼树运行错误 但调试却正确 一直找不成错误 估计问题是出在HuffmanCoding 但怎么都找不出来 #include "stdio.h" #include "stdlib.h" #include "string.h" char alphabet[]={'A','B','C','D'}; typedef struct { int weight; //权值 int parent; //父节点序号 int left ; int rig

数据结构-----哈夫曼树的构造以及遍历

/* 根据Huffman树的构造原理进行构造 ... 哈夫曼树在编码压缩的领域有很好的应用,利用Huffman进行编码可以保证数据传输 的无二义性 . 但是要注意的是 对于出现频率大的数据我们应该尽量放在离根节点近的地方进行编码 , 出现频率小的数据我们可以放在距离根节点小的地方. 这样可以提高数据的传输效率 . */ #include "stdio.h" #include "malloc.h" ///节点声明 typedef struct node{ node *

大话数据结构十六:哈夫曼树(最优二叉树)

1. 引子 当前素质教育的背景下,小学的学科成绩都改为了优秀.良好.及格.不及格这样的模糊词语,而不再通报具体的分数. 用代码可以表示如下: if( a < 60 ) System.out.print("不及格"); else if( a < 70 ) System.out.print("及格"); else if( a < 90 ) System.out.print("良好"); else System.out.print(&

求一段可以打印哈夫曼树的代码,能够在执行时看到的,谢谢!!

问题描述 求一段可以打印哈夫曼树的代码,能够在执行时看到的,谢谢!! 求一段可以将我写的哈夫曼树打印出来的代码,谢谢!!我正在写一个huffman的编码和译码的程序可是不会写打印的,请大家帮忙 解决方案 http://blog.csdn.net/creazyapple/article/details/7948207http://blog.csdn.net/skyline0623/article/details/6023443 解决方案二: 注意调用方法,把指向树的指针传给第二个函数: void

一步一步写算法(之哈夫曼树 上)

原文:一步一步写算法(之哈夫曼树 上) [ 声明:版权所有,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com]       在数据传输的过程当中,我们总是希望用尽可能少的带宽传输更多的数据,哈夫曼就是其中的一种较少带宽传输的方法.哈夫曼的基本思想不复杂,那就是对于出现频率高的数据用短字节表示,对于频率比较低得数据用长字节表示.     比如说,现在有4个数据需要传输,分别为A.B.C.D,所以一般来说,如果此时没有考虑四个数据出现的概率,那么我们完全可以这么分配

关于写哈夫曼树的思路

问题描述 关于写哈夫曼树的思路 哪位能给一个写哈夫曼树的思路啊.我想了好久都不会写,不知道怎么才能把自己输入的东西用哈夫曼树翻译出来.求帮助 解决方案 我有完整代码,需要就找我. 解决方案二: 常见若干个树节点,然后按照哈夫曼树的思想将这些节点构建成一棵树就成了

c++ 数据结构-一个程序,哈夫曼树的构造遍历打印,编码解码,缺少遍历和打印

问题描述 一个程序,哈夫曼树的构造遍历打印,编码解码,缺少遍历和打印 #include #include /* 数组头文件 / #include #define MAX 999 / 定义长度 / typedef struct{ / 定义哈夫曼编码的结构数组 / char data; int weight; / 定义权值 / int parent; int lchild; int rchild; }huffmannode; typedef struct{ / 定义保存哈夫曼结构体 / char b

数据结构例程——哈夫曼树

本文是数据结构基础系列(6):树和二叉树中第15课时哈夫曼树的例程. #include <stdio.h> #include <string.h> #define N 50 //叶子结点数 #define M 2*N-1 //树中结点总数 //哈夫曼树的节点结构类型 typedef struct { char data; //结点值 double weight; //权重 int parent; //双亲结点 int lchild; //左孩子结点 int rchild; //右孩