真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

怎么基于C++實(shí)現(xiàn)的哈夫曼編碼解碼操作-創(chuàng)新互聯(lián)

這篇文章將為大家詳細(xì)講解有關(guān)怎么基于C++實(shí)現(xiàn)的哈夫曼編碼解碼操作,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

站在用戶的角度思考問題,與客戶深入溝通,找到澄城網(wǎng)站設(shè)計(jì)與澄城網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都做網(wǎng)站、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名與空間、虛擬空間、企業(yè)郵箱。業(yè)務(wù)覆蓋澄城地區(qū)。

具體如下:

哈夫曼編碼是一個(gè)通過哈夫曼樹進(jìn)行的一種編碼,一般情況下,以字符:‘0'與‘1'表示。編碼的實(shí)現(xiàn)過程很簡單,只要實(shí)現(xiàn)哈夫曼樹,通過遍歷哈夫曼樹,這里我們從每一個(gè)葉子結(jié)點(diǎn)開始向上遍歷,如果該結(jié)點(diǎn)為父節(jié)點(diǎn)的左孩子,則在字符串后面追加“0”,如果為其右孩子,則在字符串后追加“1”。結(jié)束條件為沒有父節(jié)點(diǎn)。然后將字符串倒過來存入結(jié)點(diǎn)中。

C++實(shí)現(xiàn)代碼如下:

#include
#include
using namespace std;
struct Node
{
  double weight;
  string ch;
  string code;
  int lchild, rchild, parent;
};
void Select(Node huffTree[], int *a, int *b, int n)//找權(quán)值最小的兩個(gè)a和b
{
  int i;
  double weight = 0; //找最小的數(shù)
  for (i = 0; i = 0; l--)
    {
      cout << s[l];
      huffTree[i].code += s[l]; //保存編碼
    }
    cout << endl;
  }
}
string Huff_Decode(Node huffTree[], int n,string s)
{
  cout << "解碼后為:";
  string temp = "",str="";//保存解碼后的字符串
  for (int i = 0; i < s.size(); i++)
  {
    temp = temp + s[i];
    for (int j = 0; j < n; j++)
    {
      if (temp == huffTree[j].code)
      {
        str=str+ huffTree[j].ch;
        temp = "";
        break;
      }
      else if (i == s.size()-1&&j==n-1&&temp!="")//全部遍歷后沒有
      {
        str= "解碼錯(cuò)誤!";
      }
    }
  }
  return str;
}
int main()
{
  //編碼過程
  const int n=5;
  Node huffTree[2 * n];
  string str[] = { "A", "B", "C", "D", "E"};
  int w[] = { 30, 30, 5, 20, 15 };
  Huff_Tree(huffTree, w, str, n);
  Huff_Code(huffTree, n);
  //解碼過程
  string s;
  cout << "輸入編碼:";
  cin >> s;
  cout << Huff_Decode(huffTree, n, s)<< endl;;
  system("pause");
  return 0;
}

運(yùn)行結(jié)果如下:

怎么基于C++實(shí)現(xiàn)的哈夫曼編碼解碼操作

關(guān)于“怎么基于C++實(shí)現(xiàn)的哈夫曼編碼解碼操作”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯(cuò),請把它分享出去讓更多的人看到。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站www.cdcxhl.com,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


網(wǎng)站標(biāo)題:怎么基于C++實(shí)現(xiàn)的哈夫曼編碼解碼操作-創(chuàng)新互聯(lián)
文章位置:http://weahome.cn/article/gjodj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部