【-136的源码】【hlw8012源码】【闲来麻将源码破解】lzw c 源码

2024-11-29 20:44:15 来源:8位二进制补码怎么算源码 分类:综合

1.lzw c Դ?源码-136的源码?

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);

       }

更多资讯请点击:综合

热门资讯

pubg 雷达 源码_pubg雷达源码最新

2024-11-29 20:362151人浏览

实现windebug源码

2024-11-29 18:312474人浏览

推荐资讯

浮点源码例子_浮点数代码

1.����Դ����������Դ������ 打开dev c++,创建一个源代码窗口 2. 输入一段代码。这段代码的意思是,输入一个类型为浮点数的数值。输出一个浮点数 3. 运行,结果

直播网课源码_网课平台源码

1.直播上网课是什么意思啊2.网课直播平台哪个好3.天津网校系统源码4.网课直播课如何操作5.网课直播怎么看直播上网课是什么意思啊 直播上网课指的是通过网络平台实现教学直播,在线辅导学生完成学习任

php开发手册源码_php开发手册源码是什么

1.【PHP源码分析】FastCGI协议浅析2.php源码是什么意思3.php-8.3.3 源码编译安装以及扩展 redis 、gd和 sodium安装【PHP源码分析】FastCGI协议浅析 F