Error[8]: Undefined offset: 14, File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 114
File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 473, decode(

#include
#include
#define  MAXSIZE 50
typedef struct{
	int weight;//结点权值
	char c;//结点表示的字符
	int parent,lchild,rchild;//左右孩子和父亲节点 
}HTNode,*HuffmanTree;
void Select(HuffmanTree HT,int n,int*x1,int*x2)
{
	int min1=99999;
	int min2=min1;//定义两个变量用来存权值最小和第二小的结点 
	for(int i=1;i<=n;i++) 
	{
		if(HT[i].weight';//根结点没有编码;
	 for(int i=1;i<=n;i++) 
	 {  int pos=i;//pos记录当前编码的结点 
	 	int start=n-1; 
	 	int parent=HT[pos].parent;
	 	while(parent!=0)//当前结点还有父亲节点 
	 	{
	 		if(pos==HT[parent].lchild)
	 			s[start-1]='0';
	 			else
	 			s[start-1]='1';
	 			start--;
	 			pos=HT[i].parent;
	 			parent=HT[parent].parent;
		 }
		HC[i-1]=new char[n-start];
		strcpy(HC[i-1],&s[start]);
	 }
	 delete s;
}
void PrintHuffmancode(HuffmanTree HT,char **HC,int index)
{
	if(index>=1)
	{
		if(HT[index].lchild==0&&HT[index].rchild==0)//判断是否为叶子节点 
		{
			printf("%c:%s\n",HT[index].c,HC[index -1]);
			return ;
		}
	}
	PrintHuffmancode(HT,HC,HT[index].lchild);              
	PrintHuffmancode(HT,HC,HT[index].rchild);
	
}//先序输出叶子结点对应编码 
void Translatecode(HuffmanTree HT,char **HC,char*s1,int n,int len1)
{ 
  for(int i=0;i

运行结果:

 <===>)
File: /www/wwwroot/outofmemory.cn/tmp/route_read.php, Line: 126, InsideLink()
File: /www/wwwroot/outofmemory.cn/tmp/index.inc.php, Line: 165, include(/www/wwwroot/outofmemory.cn/tmp/route_read.php)
File: /www/wwwroot/outofmemory.cn/index.php, Line: 30, include(/www/wwwroot/outofmemory.cn/tmp/index.inc.php)
数据结构哈夫曼树的创建编码和译码_C_内存溢出

数据结构哈夫曼树的创建编码和译码

数据结构哈夫曼树的创建编码和译码,第1张

#include
#include
#define  MAXSIZE 50
typedef struct{
	int weight;//结点权值
	char c;//结点表示的字符
	int parent,lchild,rchild;//左右孩子和父亲节点 
}HTNode,*HuffmanTree;
void Select(HuffmanTree HT,int n,int*x1,int*x2)
{
	int min1=99999;
	int min2=min1;//定义两个变量用来存权值最小和第二小的结点 
	for(int i=1;i<=n;i++) 
	{
		if(HT[i].weight';//根结点没有编码;
	 for(int i=1;i<=n;i++) 
	 {  int pos=i;//pos记录当前编码的结点 
	 	int start=n-1; 
	 	int parent=HT[pos].parent;
	 	while(parent!=0)//当前结点还有父亲节点 
	 	{
	 		if(pos==HT[parent].lchild)
	 			s[start-1]='0';
	 			else
	 			s[start-1]='1';
	 			start--;
	 			pos=HT[i].parent;
	 			parent=HT[parent].parent;
		 }
		HC[i-1]=new char[n-start];
		strcpy(HC[i-1],&s[start]);
	 }
	 delete s;
}
void PrintHuffmancode(HuffmanTree HT,char **HC,int index)
{
	if(index>=1)
	{
		if(HT[index].lchild==0&&HT[index].rchild==0)//判断是否为叶子节点 
		{
			printf("%c:%s\n",HT[index].c,HC[index -1]);
			return ;
		}
	}
	PrintHuffmancode(HT,HC,HT[index].lchild);              
	PrintHuffmancode(HT,HC,HT[index].rchild);
	
}//先序输出叶子结点对应编码 
void Translatecode(HuffmanTree HT,char **HC,char*s1,int n,int len1)
{ 
  for(int i=0;i

运行结果:

 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1295555.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-10
下一篇 2022-06-10

发表评论

登录后才能评论

评论列表(0条)