日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

文件压缩(Huaffman树的概念及其实现)

發(fā)布時間:2023/11/30 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 文件压缩(Huaffman树的概念及其实现) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

什么是壓縮

想辦法讓源文件變得更小并能還原。

為什么要進行文件壓縮

  • 文件太大,節(jié)省空間
  • 提高數(shù)據(jù)再網(wǎng)絡(luò)上傳輸?shù)男?/li>
  • 對數(shù)據(jù)有保護作用—加密
  • 文件壓縮的分類

  • 無損壓縮
    • 源文件被壓縮后,通過解壓縮能夠還原成和源文件完全相同的格式
  • 有損壓縮
    • 解壓縮之后不能將其還原成與源文件完全相同的格式–解壓縮之后的文件再識別其內(nèi)容時基本沒有影響
  • GZIP壓縮

    LZ77變形:

    原理將重復(fù)出現(xiàn)得語句用盡可能短得標(biāo)記來替換
    字符串的壓縮
    LZ77可以消除文件中重復(fù)出現(xiàn)的語句,但還存在字節(jié)方面的重復(fù)

    基于Huffman編碼得壓縮

    基于字節(jié)的壓縮
    1個字節(jié)—>8個bit位,如果對于每個字節(jié)如果能夠找到一個更短的編碼,來重新改寫原3數(shù)據(jù),可以起到壓縮的目的

    Huffman樹的概念

    從二叉樹的根結(jié)點到二叉樹中所有葉結(jié)點的路徑長度與相應(yīng)權(quán)值的乘積之和為該二叉樹的帶權(quán)路徑長度WPL。
    把帶權(quán)路徑最小的二叉樹稱為Huffman樹

    Huffman樹的概念

    用戶提供一組權(quán)值信息

  • 以每個權(quán)值為結(jié)點創(chuàng)建N棵二叉樹的森林
  • 如果二叉樹森林中有超過兩個樹,進行以下操作
    • 從二叉樹森林中取出根結(jié)點權(quán)值最小的兩棵二叉樹
    • 以該兩棵二叉樹作為某個結(jié)點的左右子樹創(chuàng)建一顆新的二叉樹,新二叉樹中的權(quán)值為其左右子樹權(quán)值之和
    • 將新創(chuàng)建的二叉樹插入到森林中
  • 創(chuàng)建好之后的二叉樹森林中的每棵樹可以采用堆(priority_queue)保存

    Huffman樹的創(chuàng)建

    Huffman樹的結(jié)點定義

    struct HuffManTreeNode {HuffManTreeNode(const W& weight = W()):_pLeft(nullptr), _pRight(nullptr), _pParent(nullptr), _weight(weight){}HuffManTreeNode<W>* _pLeft;HuffManTreeNode<W>* _pRight;HuffManTreeNode<W>* _pParent;//加上雙親指針域W _weight; //結(jié)點的權(quán)值 };

    Huffman樹的類

    template<class W> class HuffManTree {typedef HuffManTreeNode<W> Node; public:HuffManTree():_pRoot(nullptr){}HuffManTree(const vector<W>& vWeight, const W& invaild){//進行建樹操作CreatHuffManTree(vWeight,invaild);}~HuffManTree(){_DestroyTree(_pRoot);}Node* GetRoot(){return _pRoot;}void CreatHuffManTree(const vector<W>& vWeight,const W& invaild){//1.構(gòu)建森林//底層為優(yōu)先級隊列priority_queue<Node*,vector<Node*>,Less<W>> q;for (auto e : vWeight){//默認(rèn)插入的數(shù)據(jù)沒有重復(fù)if (e == invaild)//如果是無效的權(quán)值,就不放了continue;q.push(new Node(e));//創(chuàng)建新的結(jié)點,樹就有了}//2.看森林里面有沒有超過兩個樹while (q.size() > 1){//取根結(jié)點權(quán)值最小的兩顆樹Node* pLeft = q.top();q.pop();Node* pRight = q.top();q.pop();// 以該兩棵二叉樹作為某個結(jié)點的左右子樹創(chuàng)建一顆新的二叉樹,//新二叉樹中的權(quán)值為其左右子樹權(quán)值之和Node* pParent = new Node(pLeft->_weight + pRight->_weight);pParent->_pLeft = pLeft;pParent->_pRight = pRight;//將新數(shù)插入到Huffman樹中pLeft->_pParent = pParent; //更新雙親pRight->_pParent = pParent;q.push(pParent);}//3.森林里只有一棵樹了,就是哈夫曼樹_pRoot = q.top();}private://銷毀二叉樹,只能用后序遍歷的方式進行銷毀void _DestroyTree(Node*& pRoot){if (pRoot){_DestroyTree(pRoot->_pLeft);_DestroyTree(pRoot->_pRight);delete pRoot;//要改指針本身,要么傳二級指針,要么一級指針的引用pRoot = nullptr;}} private:Node * _pRoot; };

    基于Huffman編碼的壓縮和解壓縮

    壓縮

  • 統(tǒng)計源文件中每個字節(jié)出現(xiàn)的次數(shù)
  • 用統(tǒng)計的結(jié)果創(chuàng)建Huffman樹
    • 什么是Huffman樹:帶權(quán)路徑長度最短的一顆二叉樹----權(quán)值越大,越靠近根結(jié)點
    • Huffman樹創(chuàng)建規(guī)則:
      • 用所有的權(quán)值創(chuàng)建只有根結(jié)點的二叉樹森林
      • 從二叉樹森林中取出根結(jié)點權(quán)值最小的兩棵二叉樹
      • 以該兩棵二叉樹作為某個結(jié)點的左右子樹創(chuàng)建一顆新的二叉樹,新二叉樹中的權(quán)值為其左右子樹權(quán)值之和
      • 將新創(chuàng)建的二叉樹插入到森林中
  • 取權(quán)值最小,用優(yōu)先級隊列也就是堆
  • 從Huffman樹種獲取字節(jié)的編碼
  • void GenerateHuffmanCode(pRoot) {if(nullptr == pRoot )return ;GenerateHuffmanCode(pRoot->left);GenerateHuffmanCode(pRoot->right);//是葉子結(jié)點獲取編碼if(nullptr == pRoot->left&& nullptr == pRoot->right){Node* pParent =pRoot->parent;Node* pCur = pRoot;while(pParent){if(pCur == pParent->left)str+='0';elsestr+='1';}} }

    壓縮文件實現(xiàn)

    我們將文件中出現(xiàn)的字符信息保存在一個大小為256的數(shù)組中

    //構(gòu)造函數(shù) FileCompressHuff::FileCompressHuff() {_fileInfo.resize(256);for (int i = 0; i < 256; ++i){_fileInfo[i]._ch = i;_fileInfo[i]._count = 0;} }

    每一個數(shù)組的元素都是一個結(jié)構(gòu)體類型,里面要保存該字符的信息,如:編碼,出現(xiàn)的次數(shù)
    而且要支持字符之間的一些運算

    struct CharInfo {unsigned char _ch; //具體的字符size_t _count; //字符出現(xiàn)的次數(shù)std::string _strCode;//字符編碼CharInfo(size_t count = 0):_count(count){}CharInfo operator+(const CharInfo& c){//返回對象,無名對象return CharInfo(_count + c._count);}bool operator>(const CharInfo& c){return _count > c._count;}//比較次數(shù)bool operator==(const CharInfo& c){return _count == c._count;} };

    最后再按照上面的四步來完成壓縮的任務(wù)

    void FileCompressHuff::CompressFile(const string& path) {//1.統(tǒng)計源文件中每個字符出現(xiàn)的次數(shù)FILE* fIn = fopen(path.c_str(),"rb");if (nullptr == fIn){assert(false);return;}unsigned char * pReadBuff = new unsigned char[1024];int rdSize = 0;while (true){//讀文件rdSize = fread(pReadBuff, 1, 1024, fIn); if (0 == rdSize)break;//統(tǒng)計for (int i = 0; i < rdSize; ++i){_fileInfo[pReadBuff[i]]._count++;}}//2.以這些出現(xiàn)的次數(shù)為權(quán)值創(chuàng)建哈夫曼樹HuffManTree<CharInfo> t(_fileInfo,CharInfo());//3.獲取每個字符的編碼GenerateHuffManCode(t.GetRoot());//4.獲取到的字符編碼重新改寫FILE* fOut = fopen("2.txt", "wb"); //打開一個文件保存壓縮后的結(jié)果if (nullptr == fOut){assert(false);return;}//將來要保存文件的后綴,所以壓縮時要讀取壓縮格式文件頭部信息WriteHead(fOut, path);fseek(fIn,0,SEEK_SET); //把文件指針再次放到文件的起始位置char ch = 0; //存放字符編碼int bitcount = 0; //計算放了多少個比特位while (true){rdSize = fread(pReadBuff, 1, 1024,fIn);if (0 == rdSize) //文件讀取結(jié)束break;//根據(jù)字節(jié)的編碼對讀取到的內(nèi)容進行重寫for (size_t i = 0; i < rdSize; ++i){//拿到編碼string strCode = _fileInfo [pReadBuff[i]]._strCode;//A "100"for (size_t j = 0; j < strCode.size(); ++j){ch <<= 1; //每放一個往左一位,把下一個編碼往里放//存放的時候,一個一個比特位來放if ('1' == strCode[j])ch |= 1;bitcount++;if (8 == bitcount) //說明ch滿了,把這個字節(jié)寫到文件中去{//fputc 寫單個字節(jié)的函數(shù)fputc(ch, fOut);//寫完后,都清零bitcount = 0;ch = 0;}}}}//最后一次ch中可能不夠8個比特位if (bitcount < 8){ch <<= 8 - bitcount; //左移剩余的位數(shù)//不夠的位肯定要寫到文件中fputc(ch, fOut);}delete[]pReadBuff;fclose(fIn);fclose(fOut); }

    獲取字符編碼

    //計算字符編碼 void FileCompressHuff::GenerateHuffManCode(HuffManTreeNode<CharInfo>* pRoot) {if (nullptr == pRoot)return;GenerateHuffManCode(pRoot->_pLeft);GenerateHuffManCode(pRoot->_pRight);//找到葉子結(jié)點if (nullptr == pRoot->_pLeft&&pRoot->_pRight == nullptr){string& strCode = _fileInfo[pRoot->_weight._ch]._strCode;HuffManTreeNode<CharInfo>* pCur = pRoot;HuffManTreeNode<CharInfo>* pParent = pCur->_pParent;while (pParent){if (pCur == pParent->_pLeft) //左為0{strCode += '0';}else //右為1{strCode += '1';}pCur = pParent;pParent = pCur->_pParent;}//字符編碼從葉子結(jié)點開始獲取是個反的//我們需要把它翻轉(zhuǎn)一下reverse(strCode.begin(), strCode.end());//_fileInfo[pRoot->_weight._ch]._strCode = strCode;} }

    獲取文件后綴

    //獲取文件的后綴 //2.txt //F:\123\2.txt string FileCompressHuff:: GetFilePostFix(const string& filename) {//substr截取文件,第二個參數(shù)沒有給的話默認(rèn)截取到末尾return filename.substr(filename.rfind('.')); }

    壓縮文件的格式

    壓縮文件中只保存壓縮之后的數(shù)據(jù)可以嗎?
    答案是不行的,因為在解壓縮時,沒有辦法進行解壓縮。比如:10111011 00101001 11000111 01011,只有壓縮數(shù)據(jù)是沒辦法進行解壓縮的,因此壓縮文件中除了要保存壓縮數(shù)據(jù),還必須保存解壓縮需要用到的信息:

  • 源文件的后綴
  • 字符次數(shù)對的總行數(shù)
  • 字符以及字符出現(xiàn)次數(shù)(為簡單期間,每個字符放置一行
  • 壓縮數(shù)據(jù)
  • //壓縮文件格式 void FileCompressHuff::WriteHead(FILE* fOut, const string& filename) {assert(fOut);//寫文件的后綴string strHead;strHead += GetFilePostFix(filename);strHead += '\n'; //后綴與后面的內(nèi)容之間用\n隔開//寫行數(shù)size_t lineCount = 0;string strChCount;char szValue[32] = { 0 }; //緩沖區(qū)放入字符次數(shù)for (int i = 0; i < 256; ++i){CharInfo& charInfo = _fileInfo[i];if (charInfo._count){lineCount++; //行數(shù)strChCount += charInfo._ch; //字符strChCount += ':'; //字符與字符次數(shù)之間用冒號隔開_itoa(charInfo._count, szValue, 10);strChCount += szValue; //字符次數(shù)strChCount += '\n'; //末尾加\n}}_itoa(lineCount, szValue, 10);//接受字符的行數(shù)strHead += szValue; //字符的行樹strHead += '\n'; //換行隔開信息strHead += strChCount; //字符的種類個數(shù)//寫信息fwrite(strHead.c_str(),1,strHead.size(),fOut); }

    解壓縮

  • 從壓縮文件中獲取源文件的后綴
  • 從壓縮文件中獲取字符次數(shù)的總行數(shù)
  • 獲取每個字符出現(xiàn)的次數(shù)
  • 重建huffman樹
  • 依靠Huffman樹解壓縮解壓縮
  • 要解壓縮文件我們先要讀取壓縮文件的格式信息
    //讀取壓縮文件的信息

    void FileCompressHuff::ReadLine(FILE* fIn, string& strInfo) {assert(fIn);//讀取一行的字符while (!feof(fIn)) //只要文件指針沒有到文件末尾就讀取{//讀取一個字符char ch = fgetc(fIn);if (ch == '\n')break;//有效的字符就拼接上去strInfo += ch;} }

    按照上面的步驟完成解壓縮

    void FileCompressHuff::UNComPressFile(const std::string& path) {FILE* fIn = fopen(path.c_str(), "rb");if (nullptr == fIn){assert(false);return;}//讀取文件的后綴string strFilePostFix;ReadLine(fIn,strFilePostFix);//讀取字符信息的總行數(shù)string strCount;ReadLine(fIn, strCount);int lineCount = atoi(strCount.c_str()); //總的行數(shù)//讀取字符的信息for (int i = 0; i < lineCount; ++i){string strchCount;ReadLine(fIn, strchCount); //讀每一行的字符信息//如果讀取到的是\nif (strchCount.empty()){strchCount += '\n'; //將\n寫入讀取ReadLine(fIn, strchCount); //多讀一行,將\n的次數(shù)和冒號讀取}//A:100_fileInfo[(unsigned char)strchCount[0]]._count = atoi(strchCount.c_str() + 2);//跳過前兩個字符,因為前兩個是A:}//還原Huffman樹HuffManTree<CharInfo> t; //創(chuàng)建Huffamn樹的對象t.CreatHuffManTree(_fileInfo, CharInfo(0)); //還原Huffman樹FILE* fOut = fopen("3.txt","wb");assert(fOut);//解壓縮char* pReadBuff = new char[1024]; //創(chuàng)建緩沖區(qū)char ch = 0;HuffManTreeNode<CharInfo>* pCur = t.GetRoot();size_t fileSize = pCur->_weight._count; //文件總的大小就是根結(jié)點的權(quán)值的次數(shù)size_t uncount = 0;//表示解壓縮了多少個while (true){size_t rdSize = fread(pReadBuff,1,1024,fIn); //讀數(shù)據(jù)if (0 == rdSize)break;//一個個字節(jié)進行解壓縮for (size_t i = 0; i < rdSize; ++i){//只需要將一個字節(jié)中的8個比特位單獨處理ch = pReadBuff[i];for (int pos = 0; pos < 8; ++pos){//增加一次判斷if (nullptr == pCur->_pLeft && nullptr == pCur->_pRight){//uncount++; //每次解壓縮一個,就++一下fputc(pCur->_weight._ch, fOut);if (uncount == fileSize)break;//葉子結(jié)點,解壓出一個字符,寫入文件 pCur = t.GetRoot(); //把pCur放到樹根的位置上繼續(xù)}if (ch & 0x80)//如果該位上的數(shù)字為1pCur = pCur->_pRight;elsepCur = pCur->_pLeft;ch <<= 1; //與完后往左移動一位if (nullptr == pCur->_pLeft && nullptr == pCur->_pRight){uncount++; //每次解壓縮一個,就++一下fputc(pCur->_weight._ch, fOut);if (uncount == fileSize)break;//葉子結(jié)點,解壓出一個字符,寫入文件 pCur = t.GetRoot(); //把pCur放到樹根的位置上繼續(xù)}}//for循環(huán)完后再讀取下一個字節(jié)}}delete[]pReadBuff;fclose(fIn);fclose(fOut); }

    出現(xiàn)的問題

    1. 加中文

    問題1

    壓縮時統(tǒng)計源文件中每個字符出現(xiàn)的次數(shù)時,出現(xiàn)崩潰,因為數(shù)組越界,因為char[-128.127];
    修改:將char改成unsigned char;

    問題2

    獲取編碼時崩潰,將CharInfo結(jié)構(gòu)體中的char改為unsigned char

    問題3

    解壓縮函數(shù)讀取字符信息時崩潰,strchCount要作為數(shù)組下標(biāo)必須為整數(shù),將其強轉(zhuǎn)為unsigned char

    2.多行信息

    問題1

    解壓縮函數(shù)中的解壓縮時崩潰,因為pCur為空了,因為讀取文件時,讀取空格就直接什么都沒有讀到,所以遇到空格時應(yīng)該多讀一行,在解壓縮讀取文件時處理\n

    問題2

    文件量增大時,只能解壓縮一部分,將所有的文件打開和寫入方式轉(zhuǎn)變?yōu)橐远M制形式打開和寫入,并在解壓縮時再增加一次判斷

    完整代碼:

    要改進的方面

  • 保證壓縮的正確性
  • 壓縮比率
  • 是不是每次壓縮之后變小?有沒有可能壓縮變大?
  • 文本文件,視頻,音頻,圖片,都可以壓縮?
  • 其它改進的方式
  • 總結(jié)

    以上是生活随笔為你收集整理的文件压缩(Huaffman树的概念及其实现)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

    精品毛片一区二区免费看 | 国产成人精品女人久久久 | 久久夜夜操| 欧美精品乱码久久久久 | av手机版| 国产高清不卡av | 日本丶国产丶欧美色综合 | 97色综合| 激情动态 | 在线一区二区三区 | 国内外成人在线视频 | 五月婷婷影院 | 久草在线视频精品 | 久久99国产精品视频 | 久久综合久久综合这里只有精品 | 色橹橹欧美在线观看视频高清 | 国产精品一区二区久久国产 | 久草在线最新免费 | 欧美一二在线 | 国产欧美精品一区aⅴ影院 99视频国产精品免费观看 | 成人在线观看网址 | 国产福利久久 | 亚洲精品一区二区三区四区高清 | 久久综合狠狠综合久久狠狠色综合 | 美女视频黄,久久 | 国产亚洲在线观看 | 国产精品久久毛片 | 亚洲精品1区2区3区 超碰成人网 | 91av在| 四虎天堂 | 一区二区伦理电影 | 午夜久久福利影院 | 久久视频免费在线 | www.久久久久 | 久久久久久久久毛片 | 午夜精品婷婷 | 高清久久久 | 免费一级片在线 | 亚洲综合爱 | 日韩精品播放 | 久久黄网站 | 中文字幕免费看 | 五月激情在线 | japanesefreesexvideo高潮| 超薄丝袜一二三区 | 日本性久久 | 色噜噜日韩精品欧美一区二区 | 国产69熟 | 色综合色综合久久综合频道88 | 黄色天堂在线观看 | 在线播放国产一区二区三区 | 人人澡人人爱 | 摸阴视频 | 国产精品去看片 | 人人模人人爽 | 五月天伊人网 | 久久免费在线观看 | 亚洲一区二区视频在线播放 | 久久99久久精品 | 日本深夜福利视频 | 在线成人中文字幕 | 在线小视频| 深夜成人av| 91人人射 | 久草青青在线观看 | 久久久久亚洲最大xxxx | 国产a级精品| 激情婷婷av | 国产中文字幕一区二区三区 | av三级av| 99视频免费观看 | 91九色porny蝌蚪主页 | 日本精品视频一区 | 国产一区二区久久 | 国产一二三四在线视频 | 天天干天天操天天操 | 久久视频在线观看 | 99精品在线直播 | 午夜黄色一级片 | 亚洲综合五月天 | 国产精品人成电影在线观看 | 久久精品网址 | 91桃色在线观看视频 | 夜夜爱av | 亚洲精品国产精品久久99热 | 狠狠色噜噜狠狠 | 天天插天天爱 | 91男人影院 | 草久久久久 | 久久免费视频国产 | 国产91精品在线播放 | 成人国产网址 | 欧美日韩国产色综合一二三四 | 91久草视频 | 天天操夜 | 麻豆国产精品永久免费视频 | av在线a | 中文在线免费观看 | 深爱婷婷网 | 日韩高清不卡在线 | 亚洲国产偷 | 黄色大片av | 欧美激情视频三区 | 亚洲免费不卡 | 国产美女被啪进深处喷白浆视频 | 日本中文字幕网 | 中文字幕日韩伦理 | 久久婷婷激情 | 国产在线精品播放 | 久久久午夜电影 | 国产黄色特级片 | 中文字幕免费观看全部电影 | 黄色三级久久 | av中文字幕剧情 | 亚洲最大在线视频 | 日韩在线国产精品 | 欧美日韩国产在线一区 | 日韩精品在线免费观看 | 免费日韩av电影 | 国产成人精品免高潮在线观看 | 网站免费黄色 | 国产精品12 | 国产精品一区二区免费 | 免费视频一二三 | 香蕉91视频 | 欧美一级黄色片 | 人人添人人澡 | 96国产精品视频 | 福利视频第一页 | 亚洲精品国产成人av在线 | 在线观看成人毛片 | 国产xvideos免费视频播放 | 91久久奴性调教 | 果冻av在线 | 成人免费大片黄在线播放 | 天天爱天天操 | 国产精品久久久久久久7电影 | 人人草网站 | 日韩,中文字幕 | 91激情| 午夜美女福利直播 | 热99在线 | 中文字幕中文中文字幕 | 色中色亚洲 | 久久夜色精品国产欧美乱 | 福利网在线 | 中文在线免费视频 | 日日操天天操夜夜操 | 久九视频 | 久久久久久久福利 | 天天干天天天 | 国产亚洲精品久久久久久网站 | 91高清免费看 | 午夜视频亚洲 | 精品免费久久久久 | 93久久精品日日躁夜夜躁欧美 | 欧美日韩亚洲一 | 国产色拍 | 国产精品99久久久久久有的能看 | 永久免费视频国产 | 亚洲 综合 国产 精品 | 91天堂在线观看 | 日日综合网 | 在线免费av电影 | av日韩国产 | 久久视频这里有精品 | 天天天射 | 看av免费 | 国产一区二区午夜 | 9ⅰ精品久久久久久久久中文字幕 | 一区免费在线 | 狠狠躁夜夜a产精品视频 | 婷婷综合视频 | 国产日韩精品一区二区在线观看播放 | 欧洲黄色片| 欧美日韩国产一区二区在线观看 | 在线亚洲天堂网 | 久久精品一区二区三区视频 | 夜夜躁天天躁很躁波 | 最新国产精品拍自在线播放 | 国产精品久久久久久久久久不蜜月 | 国产录像在线观看 | 91av网站在线观看 | 91大神在线观看视频 | av电影中文字幕在线观看 | 四虎国产精品成人免费影视 | 天天超碰 | 香蕉视频在线观看免费 | 欧美激情视频免费看 | 欧美天天综合网 | 国产一区二区不卡视频 | 日韩av一区在线观看 | 色综合色综合色综合 | 天天伊人狠狠 | 国内久久久久 | 久久久这里有精品 | 国产69精品久久久久99 | 亚洲国产精品推荐 | 99麻豆视频 | av超碰在线| 美女精品| 日韩av在线免费播放 | 成人影音av | 日韩爱爱网站 | 日韩av区 | 国产精品视频线看 | 久久嗨 | 丁香婷婷色月天 | 国产日韩精品久久 | 国产精品视频免费 | 激情五月综合 | 中文在线字幕免费观 | 午夜精品一区二区三区可下载 | 在线观看国产区 | 免费观看av网站 | 在线播放 一区 | 欧美一级在线观看视频 | 一区二区高清在线 | 中文字幕在线观看2018 | 成人一区二区在线 | 99久久www免费 | 亚洲v欧美v国产v在线观看 | 国产高清在线 | 黄p在线播放 | 韩国av免费观看 | 免费国产黄线在线观看视频 | 国产色综合 | 亚洲夜夜网 | 99r在线视频| 国产精品久久精品国产 | 欧美成人69av| 欧美 日韩 国产 成人 在线 | 亚洲精品国偷拍自产在线观看蜜桃 | 欧美一区二区在线免费观看 | 四虎国产永久在线精品 | 特级西西444www大胆高清无视频 | 日日夜夜精品 | 亚洲黄色免费在线 | 欧美中文字幕第一页 | 超碰在线亚洲 | av+在线播放在线播放 | 久草电影免费在线观看 | 在线免费观看欧美日韩 | 伊人婷婷在线 | 欧美成人精品三级在线观看播放 | 国产理伦在线 | 97福利社| 亚洲h在线播放在线观看h | 日韩免费不卡视频 | 日韩网站在线播放 | 五月婷婷另类国产 | 久久免费在线 | 天天操天天操 | 91在线视频| 国产美女久久 | 天天色天天艹 | 色婷婷综合视频在线观看 | 在线免费中文字幕 | av最新资源 | 麻豆视频在线免费观看 | 天天干人人干 | 日韩中文字幕免费看 | 香蕉91视频 | 99视频在线免费看 | 成人久久久久久久久久 | 国产精品精品久久久久久 | 超碰在线个人 | 欧美日韩免费在线视频 | 欧美日韩中文国产一区发布 | 日韩大片在线观看 | 日韩成人免费在线 | 久久99精品视频 | 日韩欧美高清在线 | 欧美日韩亚洲国产一区 | 国产区精品在线 | www.久久免费视频 | 成人午夜电影在线观看 | 久久福利 | 日本激情视频中文字幕 | 日韩国产高清在线 | 综合网av | 国产a国产a国产a | 99精品视频在线 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 玖玖爱免费视频 | 日韩欧美高清一区二区 | 国内精品久久久久影院一蜜桃 | 国产一级免费视频 | 亚洲v欧美v国产v在线观看 | 欧美aa级 | 玖玖精品视频 | 日本黄色大片免费 | 麻豆传媒视频在线免费观看 | 天天玩天天干天天操 | 四虎成人精品 | 国产精品xxxx18a99 | 久久免费99精品久久久久久 | 一级片免费观看视频 | 五月婷婷狠狠 | 五月婷在线| 亚洲九九九在线观看 | 免费在线观看的av网站 | 日日躁你夜夜躁你av蜜 | 国产玖玖精品视频 | sm免费xx网站| 婷婷色六月天 | 超碰在线人人 | 国产私拍在线 | 日韩高清免费在线观看 | 欧美一级乱黄 | 国产欧美精品一区aⅴ影院 99视频国产精品免费观看 | 亚洲成人av片在线观看 | 日韩小视频 | 国产精品免费在线播放 | 久久综合久久八八 | 波多野结衣电影一区二区 | 久久久资源 | 久久国产精彩视频 | 亚洲国产精品第一区二区 | 日韩精品一区二区三区电影 | 国产高清av在线播放 | 亚洲国产日韩欧美在线 | 亚洲狠狠婷婷综合久久久 | 久久久久久美女 | 欧美激情综合五月色丁香 | 中文字幕av影院 | 久久久久电影网站 | 免费看片网站91 | 91亚洲精 | 亚洲综合小说电影qvod | 日韩色综合网 | 亚洲天天摸日日摸天天欢 | 九九热视频在线免费观看 | 青青河边草手机免费 | 天天操天天干天天爱 | 日韩一级黄色片 | 91毛片视频| 成人黄色在线观看视频 | 免费日韩电影 | 国产又粗又硬又长又爽的视频 | 超薄丝袜一二三区 | 欧美日韩首页 | 免费三级网 | 亚洲经典精品 | 国产成人综合在线观看 | 欧美精品二 | 亚洲午夜久久久久久久久电影网 | 欧美视频在线二区 | 欧美国产日韩激情 | 国产国产人免费人成免费视频 | 91精品国自产在线偷拍蜜桃 | 国产成人一级电影 | 国产精品99免视看9 国产精品毛片一区视频 | 久久综合日 | 超碰国产在线播放 | 美女免费网站 | 天天操天天操天天操天天操天天操天天操 | 超碰av在线 | 99热这里只有精品免费 | av成人免费在线看 | 欧美在线观看视频一区二区 | 91精品免费 | 激情综合五月天 | 在线看岛国av| 国产69精品久久app免费版 | 免费观看mv大片高清 | 欧美在线不卡一区 | 91精品久久久久久久久久入口 | 日韩欧美v| 欧美视频在线二区 | 91av综合 | 国内精品视频一区二区三区八戒 | 天堂在线一区二区 | 免费特级黄色片 | 欧美黄色成人 | 日韩中文字幕免费在线播放 | 伊人亚洲精品 | 国产伦理一区 | 欧美精品久久久久久久久久丰满 | 国产精品久久中文字幕 | 日韩国产精品一区 | 日本黄色a级大片 | 在线国产片 | 国产亚洲精品久久久久久久久久 | 国产艹b视频 | 国产精品久久久久久久久费观看 | 人人添人人 | 视频二区在线视频 | 超碰人人干人人 | 国产精品视频在线看 | 中文字幕超清在线免费 | 日b视频在线观看网址 | 久久视了 | 久久久免费毛片 | 国产视频 久久久 | 亚洲国产成人精品在线观看 | 美女天天操| 一色av| 在线视频一区二区 | av黄色在线观看 | 97天堂| 欧美性网站 | 日韩av电影国产 | 成人av免费| 日韩xxxx视频 | 日本三级在线观看中文字 | av成年人电影 | 精品国产一区二区三区久久久久久 | 超黄视频网站 | 亚洲乱码久久久 | 日韩久久激情 | 亚洲美女精品区人人人人 | 九九视频网站 | 国产成人免费观看久久久 | 亚洲区精品 | 精品一二三四在线 | 久久精品一二三 | 成人福利av | 日韩美视频 | 日韩久久精品一区 | 成人性生交大片免费看中文网站 | 成人精品视频久久久久 | 亚洲国产精品一区二区尤物区 | 99精品热 | 亚洲免费精品视频 | 国产精品午夜在线 | 久久久久久久影视 | 人人爽人人av | 亚洲精品国产精品乱码在线观看 | 九九久久电影 | 久草视频免费看 | 粉嫩高清一区二区三区 | av高清在线| 九九视频网 | 国产精品久久99 | 久久久综合九色合综国产精品 | 国产精品久久久久久久妇 | 久久久99国产精品免费 | 欧美在线视频精品 | 美女在线免费观看视频 | 欧美激情第28页 | 久久久免费视频播放 | 午夜神马福利 | 久久夜色精品国产欧美一区麻豆 | 九九有精品 | 亚洲精品福利视频 | 在线 视频 一区二区 | 亚洲aⅴ一区二区三区 | 久久一二三四 | 欧美另类亚洲 | 综合网av| 69视频国产 | av 一区二区三区 | 伊人五月天综合 | 毛片随便看| 国产精品一区在线观看 | 夜夜夜夜猛噜噜噜噜噜初音未来 | 91传媒在线播放 | 欧美精品亚洲精品日韩精品 | 最近最新中文字幕 | 国产无套一区二区三区久久 | 99久久精品视频免费 | 在线国产日本 | 亚洲精品乱码久久久久久高潮 | 97在线视频网站 | av永久网址| 国产精品高清在线 | 91中文字幕视频 | 国产精品久久精品国产 | 久草精品在线观看 | 亚洲欧美综合 | 免费久久精品视频 | 超碰公开在线观看 | 午夜私人影院久久久久 | 成人久久18免费网站图片 | 国产裸体无遮挡 | 在线视频1卡二卡三卡 | 中国美女一级看片 | 亚洲精品国产精品国自产观看 | 国产精品久久久久久久久免费看 | 五月婷婷.com | 国产一级在线观看视频 | 亚洲伦理精品 | 国产手机视频在线 | 日韩小视频网站 | 九色视频自拍 | 色综合色综合久久综合频道88 | 国产伦理久久精品久久久久_ | 午夜在线观看影院 | 免费在线观看av | 成人免费在线观看电影 | 在线视频第一页 | 中字幕视频在线永久在线观看免费 | av免费网站观看 | 国产精品一区二区美女视频免费看 | 成年人视频免费在线 | www.com操| 亚洲综合视频网 | 亚州精品天堂中文字幕 | 日韩黄色大片在线观看 | 91网站在线视频 | 国产精品黄色在线观看 | 人人干在线 | 中文字幕在线视频一区二区三区 | 18+视频网站链接 | 国产无套精品久久久久久 | 91视频在线免费下载 | 国产中年夫妇高潮精品视频 | 久久大片网站 | 超碰97公开 | 成人电影毛片 | 成人小视频免费在线观看 | 国产女人免费看a级丨片 | 97在线观看 | 伊人婷婷激情 | 成人免费视频网站在线观看 | 免费网站黄 | 国产一区二区综合 | 亚洲精品免费在线视频 | 久久久999| 国产一区二区午夜 | 亚洲一区二区视频 | 日韩在线观看中文 | 国产99自拍 | 国产999在线观看 | 欧美精品v国产精品v日韩精品 | 亚洲综合在线一区二区三区 | 国产在线欧美日韩 | 国产亚洲精品久久久久久电影 | 国产精品女同一区二区三区久久夜 | 天天操人 | 91免费在线播放 | av在线免费在线观看 | 亚洲国产高清在线观看视频 | 成人av资源网 | 99国产一区二区三精品乱码 | 亚洲免费婷婷 | 久久综合狠狠狠色97 | 热re99久久精品国产66热 | av大片免费在线观看 | 国产婷婷视频在线 | 日韩在线观看一区二区 | 五月综合网| 99久久er热在这里只有精品66 | 国产精品麻豆三级一区视频 | 国产91成人 | 成人免费一级片 | 91成年人视频 | 美女免费黄视频网站 | 亚洲精品一区二区18漫画 | 91av在线播放视频 | 欧美日韩二区三区 | 国产 日韩 中文字幕 | 人人玩人人爽 | 91久久久久久国产精品 | 国产精品中文久久久久久久 | 在线不卡的av | 亚洲日本中文字幕在线观看 | 超碰99人人| 日日夜夜综合 | 欧美极度另类 | 国产1区在线 | 中文字幕黄色av | 天天射网| 精品91视频| 亚洲精品理论 | 亚洲最大av在线播放 | 色噜噜日韩精品欧美一区二区 | 国产黄色理论片 | 国产视频色 | 蜜臀久久99精品久久久久久网站 | 日韩精品免费一区二区在线观看 | 九九99视频 | 91一区啪爱嗯打偷拍欧美 | 国产高清在线看 | 97在线观看免费高清完整版在线观看 | 国产原创在线 | 国产超碰在线观看 | 国产在线精品一区二区三区 | 色婷婷综合五月 | 热99久久精品 | 日韩啪视频 | 人人爱人人添 | 色婷婷综合久久久 | 国产精品1区2区3区在线观看 | 日韩av女优视频 | 婷婷久久丁香 | 国产69精品久久app免费版 | 色噜噜在线观看视频 | 日韩精品视频网站 | 中国一级特黄毛片大片久久 | 国产一二区免费视频 | 婷婷视频在线观看 | 国产精品久久99综合免费观看尤物 | 国产精品手机视频 | 色免费在线| 在线观看色网 | 亚洲三级在线播放 | 在线免费观看麻豆 | 久久精品最新 | 欧美日韩视频免费看 | 青春草视频在线播放 | 在线直播av | 伊人看片 | www.福利| 91免费观看国产 | 久久综合影院 | 精品国产一区二区三区在线 | 国产999| 安徽妇搡bbbb搡bbbb | 片网址| 久久免费精彩视频 | 天天操天天是 | 91片网| 一区二区三区四区五区六区 | 婷婷六月丁香激情 | 在线免费观看黄色av | 国产一区二区三区高清播放 | 久久久精品免费看 | 在线看成人片 | 2024国产精品视频 | 久艹视频在线观看 | 免费久久99精品国产 | 国产精品久久久久一区二区 | 久久激情日本aⅴ | 国产精品久久久久9999 | 成人av在线影视 | 日本aaaa级毛片在线看 | 免费在线a| 伊人成人精品 | 久久精品直播 | 久久久国产精华液 | 亚洲午夜大片 | 特级a老妇做爰全过程 | 美女av免费| 久久精品小视频 | www.久久99 | 精品中文字幕在线观看 | 色婷av | 欧美色图东方 | 欧美与欧洲交xxxx免费观看 | 色一级片| 18久久久久 | 国产视频资源 | 久久国产香蕉视频 | 久久国产露脸精品国产 | 处女av在线| 国产小视频在线免费观看视频 | 天天视频色版 | 美女视频免费一区二区 | 激情婷婷丁香 | 探花视频在线观看+在线播放 | 国产成人综合图片 | 999久久久久久久久 69av视频在线观看 | 国产精品电影一区 | 91日韩在线视频 | 色爽网站| 青青网视频 | 91色视频 | 97在线影院 | 欧美在线free | 日韩精品中文字幕在线播放 | 亚洲天天看 | 色香蕉网 | 久久高清免费观看 | 成人动图 | 午夜精品福利在线 | 私人av | 久久xx视频| 麻豆传媒一区二区 | 欧美成人日韩 | 国产日韩中文字幕 | 99热都是精品 | 97精品国产一二三产区 | 99久久精品久久亚洲精品 | 日韩高清免费观看 | 啪啪免费视频网站 | 蜜臀av性久久久久蜜臀aⅴ流畅 | 午夜久久久久久久久久久 | 中文字幕电影网 | 五月婷婷欧美 | 怡红院av久久久久久久 | 精品不卡av | 在线观看成年人 | 97免费在线观看视频 | 黄色小说视频在线 | 国产无套精品久久久久久 | 成人在线视频一区 | 国产99久久久久久免费看 | 91伊人久久大香线蕉蜜芽人口 | 在线免费观看视频你懂的 | 天天爱天天操天天射 | 精品免费视频 | 四虎永久精品在线 | 三级免费黄 | 99国产精品久久久久老师 | 欧美午夜理伦三级在线观看 | 国产精品一区二区白浆 | 粉嫩高清一区二区三区 | 在线午夜电影神马影院 | 久久久久黄色 | 免费的国产精品 | 超碰免费观看 | 日韩精品久久久久 | 最近高清中文字幕在线国语5 | www.xxxx变态.com| 国产成人一区二区三区影院在线 | 国产99自拍 | 视频一区二区视频 | 精品国产综合区久久久久久 | 国产亚洲视频中文字幕视频 | 久久综合在线 | 国产一区二区精品 | 超碰人人乐 | 成人观看视频 | 国产手机视频在线观看 | 亚洲男女精品 | 国产日韩精品一区二区 | 国产在线精品福利 | 久久久免费av | 99久久网站| av三级av | 日韩精品一区二区三区免费观看 | 成人在线观看资源 | 手机看片99 | 97精品国产97久久久久久春色 | 五月天最新网址 | 日韩成人精品在线观看 | 91成人在线视频 | 国产精品对白一区二区三区 | 午夜免费电影院 | 最新高清无码专区 | 99久久er热在这里只有精品66 | 日韩av网站在线播放 | 亚洲高清资源 | 色婷婷狠 | 久久免费毛片视频 | 亚洲欧美日本一区二区三区 | 97成人在线视频 | 久久免费美女视频 | 日韩中文字幕国产精品 | 久久综合久久综合久久 | 国产亚洲精品日韩在线tv黄 | av 一区二区三区 | adc在线观看 | 久久国产精品免费一区二区三区 | 天天看天天干天天操 | 成人h视频在线播放 | 亚洲一区网站 | 亚洲欧美成人网 | 亚洲综合色网站 | 视频在线观看日韩 | 久久草网站 | 中文字幕在线播放一区 | 免费看v片网站 | 99热在线国产精品 | 久久久噜噜噜久久久 | 99久久电影| 中文字幕在线日本 | 91精品中文字幕 | 中文字幕色在线 | 又大又硬又黄又爽视频在线观看 | 五月婷婷综合在线视频 | 亚洲国产97在线精品一区 | 国精产品999国精产品视频 | 国产精品免费久久久久久 | 日本一区二区三区免费看 | 91免费看片黄 | 在线免费观看的av网站 | 久久久久国产精品午夜一区 | 久草视频免费 | 日韩最新在线视频 | 男女拍拍免费视频 | 免费av 在线 | 日韩欧美电影网 | 成人资源在线 | 伊人五月综合 | 成人黄色视| 国产视频第二页 | 93久久精品日日躁夜夜躁欧美 | 欧美日韩免费一区二区三区 | 久久久久久久国产精品视频 | 婷婷免费视频 | 日本高清中文字幕有码在线 | 免费在线观看亚洲视频 | 国产精品99久久久久久人免费 | 93久久精品日日躁夜夜躁欧美 | 免费观看午夜视频 | 在线超碰av| 91天堂影院| 日韩1页| 日韩在线观看网站 | 99久久久久久国产精品 | 天天综合入口 | 国产一级二级视频 | 亚洲理论在线观看电影 | 欧美日韩一区二区三区在线观看视频 | 久久伊人色综合 | 欧美色久 | 操操操夜夜操 | 国产一区欧美在线 | 91视视频在线直接观看在线看网页在线看 | 国产一在线精品一区在线观看 | 精品在线视频一区 | 欧美一级日韩三级 | 天天操婷婷| 成人av在线电影 | 成人黄色在线电影 | 日本不卡视频 | 9999精品免费视频 | 欧美淫aaa免费观看 日韩激情免费视频 | 亚洲国产av精品毛片鲁大师 | 绯色av一区 | 天天插天天干天天操 | 最新超碰在线 | 综合久久综合久久 | 亚洲人精品午夜 | 亚洲春色奇米影视 | 国产午夜精品福利视频 | 国内精品视频在线 | 国产情侣一区 | 99欧美| 久久成人国产精品 | 日韩免费电影一区二区 | 精品uu| 人人擦 | 国产精品每日更新 | 最新日韩视频在线观看 | 欧美另类交人妖 | 久久精品欧美一区二区三区麻豆 | 中文字幕在线资源 | 高清av网站 | 国产精品久久久久久爽爽爽 | 六月婷婷久香在线视频 | 国产一级片免费观看 | 天天拍天天干 | 外国av网 | 国色天香av | 天天干天天草 | 午夜精品久久久久久久99无限制 | 国产精品一区二区免费视频 | 日韩一区二区三区在线观看 | 在线亚洲高清视频 | 日韩激情免费视频 | 国产91精品一区二区绿帽 | 综合国产在线观看 | 一区二区成人国产精品 | 久草在线视频精品 | 亚洲蜜桃在线 | 成人小视频在线观看免费 | 亚洲播播 | 国内亚洲精品 | 五月天亚洲激情 | 啪啪免费视频网站 | 欧美在线视频二区 | 不卡av在线| 国产一级二级三级在线观看 | 日韩一级电影在线观看 | 99精品国产兔费观看久久99 | 五月婷婷国产 | 日韩激情精品 | 91精品国产综合久久婷婷香蕉 | 国产成人亚洲在线观看 | 最近乱久中文字幕 | 99在线精品观看 | 国产精品毛片久久久久久久久久99999999 | 又黄又刺激的视频 | 久久综合久色欧美综合狠狠 | 精品亚洲网 | 欧美日韩伦理在线 | 在线精品视频在线观看高清 | 夜夜操网站 | 99热99re6国产在线播放 | 999久久久欧美日韩黑人 | 久久一区二区三区超碰国产精品 | 91资源在线观看 | 国产视频一区二区在线 | 日本在线视频网址 | 国产在线传媒 | 亚洲精品国产精品国自产 | 亚洲精品在线网站 | 精品xxx| 99久久99久久精品免费 | av高清免费 | 国产夫妻性生活自拍 | 国产精品久久久久久久久搜平片 | 精品国产电影 | 黄色免费观看 | av电影久久 | 96亚洲精品久久久蜜桃 | 黄色片视频免费 | 中文字幕有码在线 | 成人精品在线 | 99热国产在线观看 | 麻豆视频在线免费观看 | 国产色婷婷精品综合在线手机播放 | 日女人电影 | av电影免费观看 | 日韩成片 | 国产黄色大片 | 深夜免费福利 | 99在线高清视频在线播放 | 狠狠色噜噜狠狠狠狠2021天天 | 国产精品一区二区久久久 | 九九欧美视频 | 高清视频一区 | 久久久久国产精品免费免费搜索 | 99久e精品热线免费 99国产精品久久久久久久久久 | 激情五月看片 | 蜜臀av一区二区 | 日韩av影片在线观看 | 色婷婷视频网 | 久草在线欧美 | 久草视频免费 | 在线观看91av| 欧美日韩一区二区在线观看 | 日韩专区在线观看 | 色天天综合网 | www.久久色| 香蕉视频在线观看免费 | 亚欧日韩av | 色噜噜狠狠狠狠色综合久不 | 国产精品一区二区白浆 | 91亚洲精品国偷拍 | 国产免费亚洲 | 日本在线观看一区二区三区 | 韩国av免费在线观看 | 国产成人91 | 99re在线视频观看 | 久久精品久久国产 | 精品毛片在线 | 狠狠干在线 | 99精品欧美一区二区 | 99热精品久久 | 黄色1级大片 | 中文字幕在线视频网站 | 五月婷婷六月丁香激情 | 国产精品一区二区三区电影 | 国产理论免费 | 国产成人久久 | 一区二区三区视频 | 久久99热久久99精品 | 亚洲精品在线免费观看视频 | 在线高清av| av亚洲产国偷v产偷v自拍小说 | 天天色天天 | 99综合电影在线视频 | 国产精品白浆视频 | 日本久久影视 | 久久国产麻豆 | 久要激情网 | 国产1级视频 | www黄com| 999久久国产精品免费观看网站 | 色婷婷综合视频在线观看 | 久久久精品小视频 | 欧美天堂影院 | 91视频免费视频 | 亚洲精品久久久久中文字幕m男 | 色综合久久综合中文综合网 | 久久精品精品 | 精品一区二区三区香蕉蜜桃 | 日日干影院 | 日韩在线视频网 | 人人舔人人爱 | 成人四虎 | 亚洲少妇自拍 | 久久久午夜精品福利内容 | 久久永久免费 | 一区二区三区四区五区在线 | 国产精品男女视频 | 亚洲国产成人久久 | 国产成人av综合色 | 亚洲永久精品视频 | 婷婷丁香综合 | 黄色软件在线观看免费 | 国产福利av | 欧美综合在线视频 | 国产精品欧美久久久久无广告 | 亚洲精品美女久久 | 久久午夜色播影院免费高清 | 久久av福利 | 色资源二区在线视频 | 精品国产欧美 | 久久情侣偷拍 | 中文字幕在线观看视频一区 | 亚洲va欧洲va国产va不卡 | 在线电影a| 国产护士hd高朝护士1 | 国产精品一区二区三区在线播放 | 国产视频精品久久 | 色999五月色 | 日韩精品视频网站 | 99精品热视频 | 国产精品久久久久婷婷 | 欧美午夜久久久 | 亚洲激情视频 | 中文字幕在线免费97 |