1.lzw c Դ?源码完美el源码?
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);
}
2025-01-19 10:481005人浏览
2025-01-19 10:322116人浏览
2025-01-19 09:44973人浏览
2025-01-19 09:132451人浏览
2025-01-19 09:131006人浏览
2025-01-19 08:491769人浏览
據黎巴嫩方面消息,以軍當地時間28日晚對黎巴嫩貝卡谷地拉姆鎮、尤寧鎮、哈菲爾鎮、阿拉克鎮等多處村鎮發動襲擊,截至目前已造成63人死亡、110餘人受傷。以色列方面對此暫無回應。來源:央視新聞)責任編輯:
1.小程序是做模板的好还是定制的好2.小程序源码怎么用小程序源码如何用3.小程序开发定制与模板开发区别是什么4.新手如何制作一个小程序,模板类好还是源码开发好?小程序是做模板的好还是定制的好 其实
1.源代码有什么用?2.知道源代码有什么好处?要源代码用了干什么?3.源代码 是什么意思4.什么是网页源码,网页源码有什么用?5.源码是什么源代码有什么用? 1. 源代码的首要作用是生成目标代码,