1.lzw c Դ?源码通达信大黑马拉涨公式源码?
lzw c Դ??
以下是哈夫曼编码
#include<iostream>
#include<math.h>
#include<string>
#include<iomanip>
using namespace std;
int n;
int isin(string str,char a)
{
int temp=0;
for(int i=0;i<str.length();i++)
{
if(str[i]==a) temp=1;
}
return temp;
}
void bubble(double p[],string sign[])//排序
{
for(int i=0;i<n-1;i++)
{
for(int j=i+1;j<n;j++)
{
if(p[i]<p[j])
{
double temp=p[i];
p[i]=p[j];
p[j]=temp;
string m=sign[i];
sign[i]=sign[j];
sign[j]=m;
}
}
}
}
void huff(double tempp[],string tempstr[])
{
double p[][];
string sign[][];
sign[0][i]=tempstr[i]; //符号放在sign数组中
for(int i=0;i<n;i++)
{
p[0][i]=tempp[i]; //p数组放对应的概率(第1列中)
}
for(i=0;i<n-1;i++)
{
bubble(p[i],sign[i]); //第一次排序
for(int j=0;j<n-2-i;j++)
{
p[i+1][j]=p[i][j]; //前n-2-i个概率重新放在p数组中(是数组的第2列中)
sign[i+1][j]=sign[i][j];
}
p[i+1][j]=p[i][j]+p[i][j+1];//第一次两个最小概率求和
sign[i+1][j]=sign[i][j]+sign[i][j+1];//符号跟随
for(j=n-1-i;j<n;j++)
{
p[i+1][j]=0;
}
}
string final[];
for(i=n-2;i>=0;i--)
{
for(int k=0;k<n;k++)
{
if(isin(sign[i][n-2-i],sign[0][k][0])) final[k]+="0";
if(isin(sign[i][n-1-i],sign[0][k][0])) final[k]+="1";
}
}
cout<<setw(9)<<"哈弗曼编码如下:"<<endl;
for(i=0;i<n;i++)
{
cout<<setw(7)<<sign[0][i]<<setw(7)<<p[0][i]<<setw()<<final[i]<<
setw(7)<<final[i].length()<<endl;
}
}
void main()
{
char a[];
cout<<"该字符串符号为:";
cin>>a;
string s=a;
n=s.length();
char b[][2];
for(int i=0;i<n;i++)
{
b[i][0]=a[i];
b[i][1]='\0';
}
string str[];
for(i=0;i<n;i++)
{
str[i]=b[i];
}
double tempp[];
cout<<"字符概率依次为:";
for(i=0;i<n;i++)
{
cin>>tempp[i];
}
huff(tempp,str);
}
2024-11-29 20:54409人浏览
2024-11-29 20:52656人浏览
2024-11-29 20:471345人浏览
2024-11-29 18:511525人浏览
2024-11-29 18:392999人浏览
2024-11-29 18:162252人浏览
1.将以下jq代码转换为原生js2.jqMobijqMobi与jQuery的区别3.jq中$("pwdId");什么意思4.jq- 轻量级且灵活的命令行 JSON 处理器将以下jq代码转换为原生js
1.搜一下导航完整程序源码2.如何编辑网页代码如何编辑网页代码格式3.HD5830评测跑分参数介绍搜一下导航完整程序源码 本导航完整程序源码包含两个模板,能够灵活切换。 运行环境要求使用Ngi
1.小程序源码怎么用小程序源码如何用2.怎么获取小程序的源码3.5个超好用的“找资源”网站!赶紧收藏!4.小程序源码怎么用 小程序源码如何用5.买源码哪个网站比较靠谱?推荐几个国内精品靠谱的商业源码采