【通达信大黑马拉涨公式源码】【电子画册源码系统】【价值周期指标源码】lzw c 源码

2024-11-29 20:56:23 来源:日赚 源码 分类:百科

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

       }

更多资讯请点击:百科

热门资讯

羊毛源码_薅羊毛源码

2024-11-29 20:52656人浏览

apj源码

2024-11-29 18:511525人浏览

分贝网 源码_分贝网下载

2024-11-29 18:392999人浏览

推荐资讯

jq 导航源码_导航源码html

1.将以下jq代码转换为原生js2.jqMobijqMobi与jQuery的区别3.jq中$("pwdId");什么意思4.jq- 轻量级且灵活的命令行 JSON 处理器将以下jq代码转换为原生js

源码71

1.搜一下导航完整程序源码2.如何编辑网页代码如何编辑网页代码格式3.HD5830评测跑分参数介绍搜一下导航完整程序源码 本导航完整程序源码包含两个模板,能够灵活切换。 运行环境要求使用Ngi

资源分享类的小程序源码_资源共享小程序

1.小程序源码怎么用小程序源码如何用2.怎么获取小程序的源码3.5个超好用的“找资源”网站!赶紧收藏!4.小程序源码怎么用 小程序源码如何用5.买源码哪个网站比较靠谱?推荐几个国内精品靠谱的商业源码采