【启赋溯源码】【连锁药店软件源码pb】【周六抄底指标源码】lzw c 源码

2024-11-29 20:38:14 来源:过ngs调用源码 分类:探索

1.lzw c Դ?源码启赋溯源码?

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

       }

更多资讯请点击:探索

热门资讯

OKR免费源码_okr系统开源软件

2024-11-29 20:05784人浏览

汽车simulink源码_simulink 汽车

2024-11-29 20:002958人浏览

统计下跌源码_下跌率计算

2024-11-29 19:151800人浏览

网页web源码_web网页源代码

2024-11-29 18:211431人浏览

推荐资讯

组队app源码_组队app下载

1.如何看到一个APP应用的源代码2.如何查看安卓app源码3.有一个APP的源代码怎么运营4.怎么在手机上查看APP的源码?5.成品网站W灬源码入口APP入口重新开放-成品网站W灬源码入口APP访客

量能柱源码_量能柱源码指标

1.期货MACD量能柱是什么2.macd量能柱是什么3.量能柱子输入什么意思4.文华财经如何能显示量能柱指标,怎么编写?谢谢大神5.量能柱是什么6.量能柱代表什么意思期货MACD量能柱是什么 期货