99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜AV-亚洲一级无码一区二区一-免费国产成高清人在线视频-中文字幕乱码免费观看-国产毛片精品妇女久久久

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實(shí)戰(zhàn)洞察。

數(shù)據(jù)結(jié)構(gòu)課設(shè)實(shí)戰(zhàn):哈夫曼編碼、遞歸替換、跳馬與長(zhǎng)整數(shù)運(yùn)算全解析

數(shù)據(jù)結(jié)構(gòu)課設(shè)實(shí)戰(zhàn):哈夫曼編碼、遞歸替換、跳馬與長(zhǎng)整數(shù)運(yùn)算全解析 簡(jiǎn)介這是一份數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)完整報(bào)告圍繞哈夫曼碼編/譯碼系統(tǒng)、遞歸替換問題、跳馬問題與長(zhǎng)整數(shù)運(yùn)算四個(gè)經(jīng)典專題適合計(jì)算機(jī)專業(yè)學(xué)生在備考、期末復(fù)習(xí)或完成類似課程設(shè)計(jì)時(shí)作為參考。哈夫曼編碼部分詳細(xì)說明構(gòu)建哈夫曼樹、生成前綴編碼及編解碼過程遞歸替換問題分析模式查找與替換的遞歸策略及邊界條件跳馬問題采用深度優(yōu)先或廣度優(yōu)先搜索遍歷棋盤路徑長(zhǎng)整數(shù)運(yùn)算則闡述用數(shù)組或鏈表存儲(chǔ)大數(shù)并實(shí)現(xiàn)加減乘除的方法。每個(gè)專題均按標(biāo)準(zhǔn)課程設(shè)計(jì)體例展開包含數(shù)據(jù)類型定義、算法設(shè)計(jì)、函數(shù)調(diào)用關(guān)系圖、調(diào)試分析、測(cè)試結(jié)果和帶注釋的源程序目錄結(jié)構(gòu)清晰便于按步驟對(duì)照實(shí)現(xiàn)和驗(yàn)證。整包為單個(gè)PDF文檔大小268KB內(nèi)容集中目前已吸引171人學(xué)習(xí)適合作為數(shù)據(jù)結(jié)構(gòu)與算法實(shí)踐環(huán)節(jié)的輔助參考資料。1. 數(shù)據(jù)結(jié)構(gòu)課設(shè)四題合訂到底在考什么拿到《哈夫曼碼的編譯碼系統(tǒng)遞歸替換問題跳馬問題長(zhǎng)整數(shù)運(yùn)算問題》這套課設(shè)題組第一反應(yīng)通常是四個(gè)題四個(gè)方向哪個(gè)都不好糊弄。它把數(shù)據(jù)結(jié)構(gòu)的主場(chǎng)全占了——樹與編碼考哈夫曼樹遞歸與??歼f歸替換圖搜索考跳馬問題的 BFS 和回溯線性表與高精度考長(zhǎng)整數(shù)運(yùn)算。對(duì)正在做課設(shè)的本科生這是把數(shù)據(jù)結(jié)構(gòu)教材 C 語言版里的章節(jié)串成工程題對(duì)準(zhǔn)備數(shù)據(jù)結(jié)構(gòu) 408 和考研數(shù)據(jù)結(jié)構(gòu)的同學(xué)它幾乎就是樹、棧、圖、鏈表四塊的綜合練習(xí)。文章按這四個(gè)題逐個(gè)給出可復(fù)制的實(shí)現(xiàn)方案、關(guān)鍵參數(shù)和邊界處理末尾附上驗(yàn)收前的測(cè)試清單照著做就能把課設(shè)從「能跑」推進(jìn)到「敢演示」。2. 哈夫曼碼編譯碼系統(tǒng)從最小堆建樹到逐位譯碼2.1 先弄清編碼模型頻率表與前綴碼的關(guān)系哈夫曼碼的本質(zhì)是前綴碼任何一個(gè)字符的編碼都不是另一個(gè)字符編碼的前綴所以譯碼時(shí)不需要分隔符從根節(jié)點(diǎn)沿著 0/1 往下走走到葉子就是一個(gè)字符。整套系統(tǒng)分三段統(tǒng)計(jì)字符頻率、建樹生成編碼表、用編碼表壓縮電文并譯碼。課設(shè)最常見的翻車點(diǎn)不在建樹而在「只有一個(gè)字符」和「編碼生成方向反了」這兩個(gè)邊角料上。建樹的輸入是頻率表。常見做法是掃描輸入文本用數(shù)組統(tǒng)計(jì)每個(gè) ASCII 字符出現(xiàn)次數(shù)把出現(xiàn)次數(shù)大于 0 的字符作為葉子節(jié)點(diǎn)。這里不需要先把字符排序——排序算法在這里派不上用場(chǎng)直接用數(shù)組下標(biāo)映射字符掃一遍文本就能得到頻率復(fù)雜度 O(n)比先排序再統(tǒng)計(jì)更省事。葉子數(shù)量 n 確定后整棵哈夫曼樹的節(jié)點(diǎn)總數(shù)是 2n-1這個(gè)數(shù)字在建樹時(shí)要提前算清楚否則數(shù)組開小了會(huì)越界。2.2 哈夫曼樹的建樹代碼數(shù)組靜態(tài)鏈表與雙親指針課設(shè)里我一般不用動(dòng)態(tài)二叉樹而是用三個(gè)數(shù)組模擬靜態(tài)鏈表lchild、rchild、parent 各開 2n 大小。選數(shù)組而不是指針好處是調(diào)試時(shí)能直接看下標(biāo)打印整棵樹方便析構(gòu)也不用遞歸釋放。每個(gè)節(jié)點(diǎn)記錄權(quán)值、左右孩子和雙親雙親字段同時(shí)充當(dāng)「是否已被合并」的標(biāo)記初始為 0被選中合并后改成新節(jié)點(diǎn)下標(biāo)。#include stdio.h #include string.h #define MAX_LEAF 128 // ASCII 可見字符數(shù)量上限 #define MAX_NODE (MAX_LEAF * 2 - 1) typedef struct { int weight; // 權(quán)值葉節(jié)點(diǎn)是字符頻率 int parent, lchild, rchild; // 雙親、左右孩子下標(biāo)0 表示空 } HTNode; HTNode ht[MAX_NODE]; char leafChars[MAX_LEAF]; // 葉節(jié)點(diǎn)對(duì)應(yīng)的字符 int leafCnt 0; void buildHuffmanTree() { // 從 leafCnt 開始創(chuàng)建內(nèi)部節(jié)點(diǎn)總共需要 2*leafCnt - 1 個(gè)節(jié)點(diǎn) for (int i leafCnt; i 2 * leafCnt - 1; i) { int m1 -1, m2 -1; int w1 0x7fffffff, w2 0x7fffffff; // 線性掃描找兩個(gè)最小權(quán)值節(jié)點(diǎn)parent 為 0 表示尚未合并 for (int j 0; j i; j) { if (ht[j].parent ! 0) continue; if (ht[j].weight w1) { w2 w1; m2 m1; w1 ht[j].weight; m1 j; } else if (ht[j].weight w2) { w2 ht[j].weight; m2 j; } } // m1 和 m2 成為新節(jié)點(diǎn) i 的左右孩子 ht[m1].parent i; ht[m2].parent i; ht[i].lchild m1; ht[i].rchild m2; ht[i].weight w1 w2; ht[i].parent 0; } }這段代碼的關(guān)鍵在循環(huán)范圍i 從 leafCnt 走到 2*leafCnt - 2正好創(chuàng)建 n-1 個(gè)內(nèi)部節(jié)點(diǎn)。掃描時(shí)跳過 parent 非 0 的節(jié)點(diǎn)保證每個(gè)葉子只被合并一次。時(shí)間復(fù)雜度 O(n2)n 最大 128課設(shè)數(shù)據(jù)量下完全夠用如果追求理論性能可以換最小堆但代碼量上去后調(diào)試成本不劃算。注意 m1 和 m2 的更新順序——先用 m1 存最小值再用 m2 存次小值寫反了建出來的樹權(quán)值順序會(huì)亂編碼長(zhǎng)度雖然可能不變但樹的形狀不對(duì)。2.3 編碼表生成與譯碼的邊界情況生成編碼時(shí)從葉子往上走到根每走一步記錄 0 或 1走完得到的串是「從葉子到根」的反向序列必須倒過來才是真正的編碼。這個(gè)倒序操作是課設(shè)里最容易忽略的細(xì)節(jié)很多人把 tmp 直接拷進(jìn)編碼表結(jié)果譯碼時(shí)對(duì)不上。char codeTable[MAX_LEAF][MAX_LEAF 1]; // 每個(gè)字符的編碼字符串 void genCodes() { char tmp[MAX_LEAF 1]; for (int i 0; i leafCnt; i) { int cur i, p ht[i].parent; int pos 0; // 從葉子向根走tmp 里存的是逆序編碼 while (p ! 0) { if (ht[p].lchild cur) tmp[pos] 0; else tmp[pos] 1; cur p; p ht[p].parent; } // 倒序后才得到正確編碼 for (int j 0; j pos; j) codeTable[i][j] tmp[pos - 1 - j]; codeTable[i][pos] \0; } }譯碼則反過來從根出發(fā)遇 0 走左孩子、遇 1 走右孩子走到葉子輸出字符并回到根。判斷葉子不能依賴 parent因?yàn)楦?jié)點(diǎn)的 parent 也是 0常見做法是檢查 lchild 和 rchild 是否同時(shí)為 0。這里有個(gè)特例必須單獨(dú)處理當(dāng) leafCnt 1 時(shí)整棵樹只有一個(gè)葉子節(jié)點(diǎn)編碼是空串譯碼時(shí)不管輸入什么直接輸出那個(gè)字符。不處理這個(gè)分支建樹循環(huán)根本進(jìn)不去后續(xù)代碼會(huì)訪問未初始化的節(jié)點(diǎn)表現(xiàn)就是隨機(jī)崩潰。void decode(char *bits, int len) { if (leafCnt 1) { // 單字符特例無編碼直接輸出 for (int i 0; i len; i) putchar(leafChars[0]); return; } int root 2 * leafCnt - 2; // 根節(jié)點(diǎn)下標(biāo) int cur root; for (int i 0; i len; i) { if (bits[i] 0) cur ht[cur].lchild; else cur ht[cur].rchild; if (ht[cur].lchild 0 ht[cur].rchild 0) { putchar(leafChars[cur]); cur root; } } }譯碼的輸入可以是 0/1 字符數(shù)組也可以是二進(jìn)制位。課設(shè)通常要求看得見摸得著用字符 0 和 1 存就行壓縮率難看一點(diǎn)但便于驗(yàn)證如果要求展示壓縮效果可以把 8 個(gè) 0/1 字符并成一個(gè)字節(jié)輸出解壓時(shí)再按位還原。3. 遞歸替換問題與跳馬問題遞歸和回溯的兩種考試姿勢(shì)3.1 遞歸替換問題顯式棧怎么還原函數(shù)調(diào)用遞歸替換問題的核心是「把遞歸算法改寫成非遞歸」考察對(duì)棧幀的理解。遞歸函數(shù)在運(yùn)行時(shí)每次調(diào)用都會(huì)把參數(shù)、局部變量和返回地址壓入系統(tǒng)棧遞歸改非遞歸的通用套路就是自己維護(hù)一個(gè)棧把原來隱式的壓棧彈棧變成顯式的 push 和 pop。常見題型包括快速排序非遞歸化、二叉樹遍歷非遞歸化、斐波那契尾遞歸消除課設(shè)里最常抽到的是排序類。以快速排序?yàn)槔f歸版本每次處理一個(gè)區(qū)間然后遞歸處理左右兩個(gè)子區(qū)間。改成非遞歸時(shí)棧里存的不是整個(gè)數(shù)組而是一個(gè)個(gè)「待處理區(qū)間」的左右端點(diǎn)。每個(gè)棧幀只需要 low 和 high 兩個(gè)整數(shù)這就是遞歸函數(shù)的運(yùn)行現(xiàn)場(chǎng)。typedef struct { int low, high; // 待排序區(qū)間 } Range; void quickSortNonRecur(int arr[], int n) { Range stack[100005]; // 顯式棧模擬系統(tǒng)調(diào)用棧 int top 0; stack[top].low 0; stack[top].high n - 1; top; while (top 0) { top--; // 彈出當(dāng)前區(qū)間 int low stack[top].low, high stack[top].high; if (low high) continue; // 一趟劃分教科書版快排 int pivot arr[low]; int l low, r high; while (l r) { while (l r arr[r] pivot) r--; arr[l] arr[r]; while (l r arr[l] pivot) l; arr[r] arr[l]; } arr[l] pivot; // 先壓右區(qū)間再壓左區(qū)間出棧后先處理左側(cè) if (l 1 high) { stack[top].low l 1; stack[top].high high; top; } if (low l - 1) { stack[top].low low; stack[top].high l - 1; top; } } }這段代碼里最重要的參數(shù)是棧頂指針 top。壓棧順序決定處理順序后進(jìn)先出所以先壓右區(qū)間、再壓左區(qū)間出棧時(shí)左區(qū)間先被處理和遞歸版本從左到右的順序一致。區(qū)間邊界 low high 時(shí)直接跳過這是遞歸出口的等價(jià)物。寫這類題容易犯的錯(cuò)是漏壓某個(gè)方向的區(qū)間或者把區(qū)間端點(diǎn)算錯(cuò)一位導(dǎo)致排序結(jié)果不對(duì)。建議對(duì)照遞歸版本逐行翻譯遞歸調(diào)用 f(l, mid-1) 對(duì)應(yīng)壓入 (l, mid-1)遞歸調(diào)用 f(mid1, r) 對(duì)應(yīng)壓入 (mid1, r)一個(gè)都不能少。3.2 跳馬問題建模走法數(shù)組與約束條件跳馬問題也叫騎士巡游問題給定 n×m 棋盤和起點(diǎn)終點(diǎn)馬按「日」字走求能否到達(dá)以及最短步數(shù)。這個(gè)題表面上和圖論里的最短路是一回事但棋盤是稀疏圖每個(gè)節(jié)點(diǎn)最多連 8 條邊所以用 BFS 求最短步數(shù)是標(biāo)準(zhǔn)解法。如果題目只要求「找一條可行路徑」DFS 回溯也能做但棋盤一大就指數(shù)爆炸課設(shè)里優(yōu)先寫 BFS。建模分三步坐標(biāo)系、走法數(shù)組、越界判斷。走法數(shù)組是 8 個(gè)偏移量寫錯(cuò)一個(gè)方向整個(gè)圖就壞了這是最常見的低級(jí)錯(cuò)誤。我用兩個(gè)數(shù)組分別存 x 和 y 的偏移量順序無所謂但要寫全。int dx[8] {1, 1, 2, 2, -1, -1, -2, -2}; int dy[8] {2, -2, 1, -1, 2, -2, 1, -1};坐標(biāo)從 0 開始還是從 1 開始不影響算法但輸入輸出的轉(zhuǎn)換要做干凈。課設(shè)題目如果給的是 1-indexed 坐標(biāo)讀入后立即減 1之后所有邏輯都用 0-indexed避免中間到處做偏移修正。3.3 跳馬最短路徑的 BFS 實(shí)現(xiàn)與路徑回溯BFS 的代碼骨架是隊(duì)列加距離數(shù)組。距離數(shù)組初始化成 -1同時(shí)充當(dāng) visited 的角色一舉兩得。這里有個(gè)關(guān)鍵點(diǎn)節(jié)點(diǎn)在入隊(duì)時(shí)就標(biāo)記為已訪問而不是出隊(duì)時(shí)才標(biāo)記。入隊(duì)標(biāo)記能保證每個(gè)節(jié)點(diǎn)最多入隊(duì)一次隊(duì)列長(zhǎng)度可控出隊(duì)標(biāo)記會(huì)讓同一節(jié)點(diǎn)被多次入隊(duì)小棋盤看不出問題棋盤到了幾百階直接內(nèi)存膨脹加超時(shí)。#include stdio.h #include string.h #define MAXN 1005 int dist[MAXN][MAXN]; int preX[MAXN][MAXN], preY[MAXN][MAXN]; // 記錄前驅(qū)節(jié)點(diǎn)坐標(biāo) int bfs(int sx, int sy, int tx, int ty, int n, int m) { if (sx tx sy ty) return 0; memset(dist, -1, sizeof(dist)); int queX[MAXN * MAXN], queY[MAXN * MAXN]; int head 0, tail 0; queX[tail] sx; queY[tail] sy; tail; dist[sx][sy] 0; while (head tail) { int x queX[head], y queY[head]; head; for (int k 0; k 8; k) { int nx x dx[k], ny y dy[k]; if (nx 0 || nx n || ny 0 || ny m) continue; if (dist[nx][ny] ! -1) continue; // 已訪問過跳過 dist[nx][ny] dist[x][y] 1; preX[nx][ny] x; preY[nx][ny] y; // 記錄來源 if (nx tx ny ty) return dist[nx][ny]; queX[tail] nx; queY[tail] ny; tail; } } return -1; // 不可達(dá) }dist 數(shù)組的意義是起點(diǎn)到每個(gè)格子的最短步數(shù)dist[x][y] dist[px][py] 1 成立的原因是 BFS 按層擴(kuò)展第一次到達(dá)某個(gè)格子的路徑一定最短。pre 數(shù)組用于回溯路徑到達(dá)終點(diǎn)后從終點(diǎn)沿著 pre 一路回退到起點(diǎn)再把序列倒過來輸出。如果題目只要求輸出步數(shù)pre 數(shù)組可以去掉省不少內(nèi)存但如果要求輸出完整路徑pre 必須保留。棋盤上限要注意隊(duì)列長(zhǎng)度n×m 最大一百萬個(gè)格子時(shí)queX 和 queY 要開到一百萬以上用變長(zhǎng)數(shù)組或者 malloc 動(dòng)態(tài)分配更穩(wěn)妥。4. 長(zhǎng)整數(shù)運(yùn)算問題萬進(jìn)制鏈表幾百位加法乘法怎么落地4.1 為什么選萬進(jìn)制鏈表int、數(shù)組與鏈表的選型長(zhǎng)整數(shù)運(yùn)算問題的輸入是幾百位甚至上千位的十進(jìn)制數(shù)任何原生整數(shù)類型都存不下。常見方案有兩種用數(shù)組從高位到低位存每一位或者用鏈表按位存。數(shù)組實(shí)現(xiàn)簡(jiǎn)單但課設(shè)題目明確要求「長(zhǎng)整數(shù)」鏈表是標(biāo)準(zhǔn)答案——鏈表的好處是長(zhǎng)度動(dòng)態(tài)增長(zhǎng)加法乘法產(chǎn)生進(jìn)位時(shí)不會(huì)浪費(fèi)空間也便于展示數(shù)據(jù)結(jié)構(gòu)功底。參考王道或大話數(shù)據(jù)結(jié)構(gòu)線性表一章鏈表的插入刪除本身就是考點(diǎn)這個(gè)題等于把鏈表操作和進(jìn)制轉(zhuǎn)換揉在一起考。存儲(chǔ)基數(shù)的選擇是關(guān)鍵參數(shù)。用 BASE 10 存每一位空間浪費(fèi)大且乘法效率低我一般用 BASE 10000即每個(gè)鏈表節(jié)點(diǎn)存 4 位十進(jìn)制數(shù)稱為「萬進(jìn)制」。萬進(jìn)制的好處有三點(diǎn)同樣長(zhǎng)度的數(shù)鏈表節(jié)點(diǎn)數(shù)少 4 倍節(jié)點(diǎn)值范圍 0~9999兩個(gè)節(jié)點(diǎn)相乘最大約 1e8int 放得下輸出時(shí)每個(gè)節(jié)點(diǎn)補(bǔ)零到 4 位即可。鏈表方向約定為「低位在前」即第一個(gè)節(jié)點(diǎn)是個(gè)位到千位下一個(gè)節(jié)點(diǎn)是萬位到千萬位這樣進(jìn)位只會(huì)向后擴(kuò)展和手工豎式一致。#define BASE 10000 // 萬進(jìn)制每個(gè)節(jié)點(diǎn)存 4 位 #define MAXDIGIT 1000 // 最多 1000 個(gè)節(jié)點(diǎn)約 4000 位 typedef struct BigIntNode { int val; // 0 ~ 9999 struct BigIntNode *next; // 指向更高位 } BigIntNode;4.2 萬進(jìn)制加法的實(shí)現(xiàn)從低位進(jìn)位到符號(hào)分離加法邏輯和十進(jìn)制豎式完全一樣從低位開始逐節(jié)點(diǎn)相加carry 記錄進(jìn)位結(jié)果當(dāng)前位是 sum % BASE進(jìn)位是 sum / BASE。需要注意循環(huán)結(jié)束條件當(dāng)兩個(gè)鏈表都遍歷完但 carry 不為 0 時(shí)還要再創(chuàng)建一個(gè)節(jié)點(diǎn)存放最高位的進(jìn)位這是加法最常見的遺漏點(diǎn)。BigIntNode* add(BigIntNode *a, BigIntNode *b) { BigIntNode *head NULL, **tail head; int carry 0; while (a ! NULL || b ! NULL || carry ! 0) { int sum carry; if (a ! NULL) { sum a-val; a a-next; } if (b ! NULL) { sum b-val; b b-next; } carry sum / BASE; BigIntNode *node (BigIntNode*)malloc(sizeof(BigIntNode)); node-val sum % BASE; node-next NULL; *tail node; // 尾插法保持低位在前 tail node-next; } return head; }這段代碼用了二級(jí)指針 tail 做尾插法好處是不需要單獨(dú)維護(hù)頭節(jié)點(diǎn)的前驅(qū)。如果你不熟悉二級(jí)指針也可以用一個(gè)啞節(jié)點(diǎn)dummy head簡(jiǎn)化邊界判斷返回時(shí)記得釋放啞節(jié)點(diǎn)。符號(hào)處理建議放在加法外層加數(shù)和被加數(shù)同號(hào)時(shí)直接調(diào) add異號(hào)時(shí)變成減法比較絕對(duì)值大小后調(diào)用減法函數(shù)結(jié)果符號(hào)取絕對(duì)值大的一方的符號(hào)。把符號(hào)和絕對(duì)值運(yùn)算分離比在加法內(nèi)部處理負(fù)數(shù)干凈得多不容易出現(xiàn)「負(fù)負(fù)得正卻忘了進(jìn)位」的玄學(xué) bug。4.3 萬進(jìn)制乘法與輸出補(bǔ)零先累加再統(tǒng)一進(jìn)位乘法如果直接模仿豎式逐位相乘最直觀的做法是兩層循環(huán)把 a 的第 i 個(gè)節(jié)點(diǎn)和 b 的第 j 個(gè)節(jié)點(diǎn)的乘積累加到結(jié)果數(shù)組的下標(biāo) ij 處。這里最常踩的坑是「邊乘邊進(jìn)位」一邊累加一邊處理進(jìn)位會(huì)導(dǎo)致后續(xù)累加時(shí)數(shù)組里已經(jīng)有進(jìn)位后的值再疊加就亂套。正確做法是先用一個(gè)數(shù)組把原始乘積全部累加完最后統(tǒng)一做一輪進(jìn)位這也是高精度乘法的標(biāo)準(zhǔn)姿勢(shì)。BigIntNode* multiply(BigIntNode *a, BigIntNode *b) { int lenA 0, lenB 0; BigIntNode *pa; for (pa a; pa ! NULL; pa pa-next) lenA; for (pa b; pa ! NULL; pa pa-next) lenB; long long res[MAXDIGIT * 2] {0}; // 中間結(jié)果用 long long防溢出 int ai 0, bj 0; for (pa a; pa ! NULL; pa pa-next, ai) { bj 0; for (BigIntNode *pb b; pb ! NULL; pb pb-next, bj) { res[ai bj] (long long)pa-val * pb-val; } } // 統(tǒng)一進(jìn)位從低位到高位依次處理 int totalLen lenA lenB; for (int i 0; i totalLen; i) { res[i 1] res[i] / BASE; res[i] % BASE; } // 把 res 數(shù)組轉(zhuǎn)回鏈表去掉高位多余的 0 int highPos totalLen; while (highPos 0 res[highPos] 0) highPos--; BigIntNode *head NULL, **tail head; for (int i 0; i highPos; i) { BigIntNode *node (BigIntNode*)malloc(sizeof(BigIntNode)); node-val (int)res[i]; node-next NULL; *tail node; tail node-next; } if (head NULL) { // 結(jié)果為 0 BigIntNode *node (BigIntNode*)malloc(sizeof(BigIntNode)); node-val 0; node-next NULL; head node; } return head; }下標(biāo)映射要算清楚a 的第 i 位從 0 開始和 b 的第 j 位相乘結(jié)果貢獻(xiàn)到 res[ij]不是 res[ij1]。搞錯(cuò)下標(biāo)最典型的故障是結(jié)果恰好少了一位檢查時(shí)很難發(fā)現(xiàn)。乘法的時(shí)間復(fù)雜度 O(lenA × lenB)兩個(gè) 1000 節(jié)點(diǎn)的數(shù)相乘要執(zhí)行百萬次乘法C 語言在毫秒級(jí)完成課設(shè)驗(yàn)收完全沒問題如果要優(yōu)化可以用 Karatsuba但普通要求用不到。輸出函數(shù)是另一個(gè)重災(zāi)區(qū)。鏈表是低位在前輸出必須先從最高位節(jié)點(diǎn)開始。最高位節(jié)點(diǎn)直接輸出數(shù)值后面每個(gè)節(jié)點(diǎn)要用 %04d 格式補(bǔ)零到 4 位否則 10001 會(huì)變成 11。負(fù)數(shù)在輸出前打一個(gè) -然后走絕對(duì)值鏈表。5. 課設(shè)常見問題排查越界、爆棧、超時(shí)與對(duì)不上的報(bào)告5.1 哈夫曼n1 時(shí)直接崩編碼表逆序和越界現(xiàn)象輸入文本只有一個(gè)字符時(shí)程序崩潰或輸出亂碼編碼表生成后某些字符的編碼是反的譯碼結(jié)果錯(cuò)亂。原因單字符時(shí)哈夫曼樹只有一個(gè)根節(jié)點(diǎn)建樹循環(huán)不執(zhí)行后續(xù)譯碼訪問了未初始化的 ht[cur].lchild編碼生成時(shí)從葉子往根走得到的序列是倒序沒有反轉(zhuǎn)就存入編碼表。解決建樹前判斷 leafCnt 1 直接走單字符特例邏輯genCodes 里在拷貝之前把 tmp 反轉(zhuǎn)一遍。建議把編碼生成的倒序邏輯單獨(dú)抽成一個(gè)函數(shù)測(cè)試時(shí)用一個(gè)只有兩個(gè)字符的字符串驗(yàn)證編碼比如 aaab手動(dòng)推導(dǎo)一遍編碼再對(duì)照程序輸出。5.2 遞歸替換棧幀字段少壓一個(gè)結(jié)果就翻車現(xiàn)象快排非遞歸版本對(duì)小數(shù)組排序正確對(duì)大數(shù)組排序結(jié)果部分錯(cuò)誤或者程序能跑完但輸出沒有完全有序。原因遞歸改非遞歸時(shí)把遞歸函數(shù)的參數(shù)和局部變量的壓棧順序搞混了??炫诺拿總€(gè)棧幀只有 low 和 high但如果原遞歸函數(shù)里有中間的臨時(shí)變量比如劃分后的 pivot 位置非遞歸版本也必須把它存進(jìn)棧幀否則子區(qū)間范圍會(huì)算錯(cuò)。解決對(duì)遞歸函數(shù)做一次棧幀分析列出「入口參數(shù) 進(jìn)入函數(shù)后可能被修改且后續(xù)還要用的變量」這些全部放進(jìn)結(jié)構(gòu)體。壓棧順序和遞歸調(diào)用順序保持一致彈棧后再按對(duì)應(yīng)順序處理。驗(yàn)證方法是用遞歸版快排對(duì)拍隨機(jī)生成數(shù)組反復(fù)測(cè)不要只測(cè)教材上的示例數(shù)據(jù)。5.3 跳馬 BFS入隊(duì)即標(biāo)記出隊(duì)標(biāo)記會(huì)超時(shí)現(xiàn)象棋盤在 20×20 以內(nèi)正常擴(kuò)大到 100×100 時(shí)程序變卡甚至內(nèi)存不夠BFS 求出的步數(shù)偶爾還不對(duì)。原因在節(jié)點(diǎn)出隊(duì)時(shí)才標(biāo)記 visited同一個(gè)節(jié)點(diǎn)被多個(gè)方向同時(shí)擴(kuò)展到會(huì)被重復(fù)入隊(duì)多次隊(duì)列膨脹到指數(shù)級(jí)。教科書上寫的是「出隊(duì)時(shí)標(biāo)記」是某些特定寫法但在棋盤這種每個(gè)節(jié)點(diǎn)有 8 個(gè)鄰居的圖上必須「入隊(duì)時(shí)標(biāo)記」。解決在 dist[nx][ny] ! -1 判斷通過后立即給 dist[nx][ny] 賦值并入隊(duì)。這個(gè)判斷既是防重入也是距離賦值的前提。上課設(shè)驗(yàn)收時(shí)用 1000×1000 的棋盤從角上跑到對(duì)角如果跑到一半卡住先查標(biāo)記時(shí)機(jī)。5.4 長(zhǎng)整數(shù)乘法一邊乘一邊進(jìn)位會(huì)覆蓋結(jié)果現(xiàn)象萬進(jìn)制乘法結(jié)果比預(yù)期小很多或者中間某位出現(xiàn)負(fù)數(shù)偶爾結(jié)果還正確換一組數(shù)據(jù)就錯(cuò)。原因兩層循環(huán)里每乘一次就立刻處理進(jìn)位把 res 數(shù)組里還沒累加完的數(shù)提前改寫。比如 res[0] 先累加了 9999×9999進(jìn)位到 res[1]之后 res[0] 又要累加新的乘積原來的低位還沒參與后續(xù)累加數(shù)據(jù)就被進(jìn)位破壞了。解決用 long long 數(shù)組存原始乘積兩層循環(huán)全部累加完后再從低位到高位統(tǒng)一進(jìn)位。這一步里數(shù)組下標(biāo)從 0 到 lenAlenB-1 都要處理進(jìn)位可能產(chǎn)生到 lenAlenB 的位置數(shù)組要開到兩倍長(zhǎng)度。輸出時(shí)注意高位補(bǔ)零用 %04d 不是 %d。5.5 報(bào)告與代碼版本不一致課設(shè)驗(yàn)收的隱形扣分現(xiàn)象演示時(shí)運(yùn)行正常但交上去的實(shí)驗(yàn)報(bào)告里截圖的數(shù)據(jù)和最終代碼輸出對(duì)不上答辯時(shí)被問到測(cè)試數(shù)據(jù)答不上來。原因代碼改過多版報(bào)告里的測(cè)試結(jié)果還是早期版本沒同步更新。數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告最被看重的是測(cè)試數(shù)據(jù)的完整性和可復(fù)現(xiàn)性不是代碼貼圖越多越好。解決確定代碼最終版后固定一組輸入文件命名為 test1.in、test2.in把對(duì)應(yīng)的輸出文件test1.out、test2.out一起放到報(bào)告附件里。報(bào)告里每個(gè)模塊放「輸入、輸出、說明」三行對(duì)齊的表格測(cè)試數(shù)據(jù)包含普通情況、邊界情況空輸入、單字符、最大長(zhǎng)度、不可達(dá)路徑這些數(shù)據(jù)和現(xiàn)場(chǎng)演示保持一致。代碼每改一版就把全部測(cè)試重新跑一遍輸出存進(jìn)同一目錄覆蓋舊文件。6. 驗(yàn)收前最后一小時(shí)對(duì)拍、壓測(cè)與留痕6.1 用對(duì)拍腳本驗(yàn)證正確性對(duì)拍是競(jìng)賽選手驗(yàn)證程序的標(biāo)準(zhǔn)手段課設(shè)同樣適用。思路是寫一個(gè)你認(rèn)為絕對(duì)正確的參考程序再寫一個(gè)隨機(jī)數(shù)據(jù)生成器兩個(gè)程序吃同一份輸入逐條比較輸出。長(zhǎng)整數(shù)運(yùn)算用 Python 的 int 做參考最穩(wěn)哈夫曼和跳馬可以手寫一個(gè)暴力解做參考比如跳馬的參考程序用 DFS 在小棋盤上窮舉所有路徑步數(shù)逐個(gè)比較。#!/bin/bash # 對(duì)拍腳本隨機(jī)生成輸入比較兩個(gè)程序的輸出 for i in $(seq 1 1000); do python3 gen.py test.in ./ref test.in ref.out ./mine test.in mine.out if ! diff -q ref.out mine.out /dev/null; then echo Case $i failed echo --- input --- cat test.in break fi done echo finished對(duì)拍能暴露的問題很多時(shí)候是「程序邏輯正確但輸入輸出格式不對(duì)」比如多了個(gè)空格或少了個(gè)換行。比起期末復(fù)習(xí)時(shí)背結(jié)論這個(gè)習(xí)慣能直接告訴你代碼哪里和預(yù)期不一致。隨機(jī)生成器要覆蓋邊界哈夫曼的輸入要包含只有一個(gè)字符的情況長(zhǎng)整數(shù)的輸入要包含負(fù)數(shù)、0、首位有前導(dǎo)零的數(shù)跳馬要生成起點(diǎn)等于終點(diǎn)的數(shù)據(jù)。6.2 邊界數(shù)據(jù)與壓力測(cè)試清單驗(yàn)收前按下面的表格過一遍每一項(xiàng)都記錄實(shí)際輸出寫進(jìn)報(bào)告里就是完整的測(cè)試小節(jié)。模塊邊界測(cè)試數(shù)據(jù)預(yù)期結(jié)果哈夫曼空文本 / 單字符文本 / 全部字符同頻空文本不崩單字符編碼為空串同頻字符樹高盡量均衡哈夫曼100 萬字符長(zhǎng)文本建樹和編碼總耗時(shí)在 1 秒內(nèi)內(nèi)存不超 10MB遞歸替換數(shù)組長(zhǎng)度 0 / 1 / 已有序 / 完全逆序不崩且排序結(jié)果正確跳馬起點(diǎn)終點(diǎn) / 不可達(dá)坐標(biāo) / 1000×1000 大棋盤起點(diǎn)終點(diǎn)相同返回 0不可達(dá)返回 -1大棋盤 1 秒內(nèi)出結(jié)果長(zhǎng)整數(shù)0 負(fù)數(shù) / 9999×9999 邊界進(jìn)位 / 4000 位最大長(zhǎng)度進(jìn)位正確輸出無前導(dǎo)零負(fù)數(shù)符號(hào)正確大數(shù)壓測(cè)時(shí)如果發(fā)現(xiàn)乘法超時(shí)先把 BASE 從 10000 降到 1000 試試能定位是進(jìn)位邏輯問題還是真的算法效率不夠。棋盤壓測(cè)的隊(duì)列數(shù)組要按最大棋盤尺寸預(yù)分配別用動(dòng)態(tài)增長(zhǎng)的小數(shù)組反復(fù) realloc性能會(huì)差很多。最后說點(diǎn)題外話。我當(dāng)年做跳馬問題時(shí)BFS 用的是出隊(duì)標(biāo)記自己測(cè) 10×10 怎么都對(duì)課設(shè)答辯現(xiàn)場(chǎng)老師把棋盤調(diào)成 100×100程序卡了十幾秒才出結(jié)果場(chǎng)面一度尷尬。后來養(yǎng)成習(xí)慣每個(gè)模塊寫完先寫一個(gè) 10 行左右的暴力參考程序?qū)ε囊惠喸倌脴O限數(shù)據(jù)壓一次性能。這套流程看著慢實(shí)際省下的調(diào)試時(shí)間遠(yuǎn)超預(yù)期。希望這些踩坑記錄能讓你把課設(shè)做到「敢現(xiàn)場(chǎng)演示」的程度。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
婷婷丁香五月亚洲17cao| 六月丁香婷婷在线波多| 色婷婷色99国产综合精品| 久久黄色免费视频| 熟妇高潮一区av| 五月婷婷六月丁香综合| 久久奄也去色色网站| 日韩综合成人| 色色婷婷丁香| 99精品热视频| 色五月AV| 99热精地址| 狠狠爱婷婷爱| 日韩成人电影Av| 六月丁香网| 婷婷色五月色| 婷婷五月天性| 色婷婷精品小视频| 色婷婷五月天中文字幕| 91超碰人人操| 久久婷婷五月天蜜桃| 五月Huangsewang| 九月婷婷综合| 五月香婷婷| 色婷婷影音| 婷婷五月色影视先锋| 婷婷五月天AV| www.操.com| 五月天伊人综合| 第四色婷婷日本| 亚洲丁香婷婷| 亚洲精级| 不卡成人免费| 1级欧美日韩| 99国产在线| 色99在线视频| 99色视频| 午夜爱爱网站| 色婷操逼| 丁香五月久久| 97色干| 久机视频这只有精品| 久色视频首页| 五月天电影网| 超碰1999| 天天插天天爱| 久久狠狠干| 狠狠xx| 日本99久久| 日韩一级网站| 天天操婷婷| 射琪琪| www超碰| 国产日比| 亚洲色五月| 色噜噜综合网| 色五月婷婷在线| 丁香五月婷婷五月天| 人妻精品久久久久久久| 综合激情视频| 亚洲婷婷五月| 色播五月网| 色五月婷婷91| www.狠狠操| 能看的AV| 微拍92| 自拍视频99| 97碰精品| www.色9| 日本久草福利| 亚洲视频国产一区| 激情五月开心五月在线视频| 丁香亚洲婷婷五月| 婷婷无码五月天| 久久只这里有精品| 人人摸人人| 婷婷六月激情在线视频| 粉嫩av懂色av蜜臀av熟妇| 激情综合五月天| 深爱激情五月网| 丁香五月激情综合| 99精品在线| 成人αV视频免费观看| 综合欧美五月婷婷| 99热99精品| 久草A片| 色婷婷综合久色AV五色最新| eeuus五月婷| 丁香五月婷婷动漫| 亚洲操操操| 91久久精品无码一区二区三区| 97在线刺激| 思思久久精品| 综合久久综合五月天婷婷| 五月天丁香综合久久国产| 538任你爽| 五月天激情网址| 亚洲综合在线播放| 五月色精品| 丁香五月六月综合激情| 婷婷五月花| 五月天啪啪网| 六月亚洲婷婷6月中文字幕| 99热偷拍| 婷婷天天日婷婷| 91操片| 久久九九99| 99久久综合狠狠综合久久| 热婷婷av| 婷久看人爽| 欧美色五月天| 九九成人视频| 久草A片| 久久久婷婷婷| 综合噜噜| 国产AV成人精品| 天天视频精品9| 五月天婷婷情色| 五月色丁香成人| 五月综合婷婷五月| 8050一级网| 大香蕉太香蕉视频97| 网色99| 丁香婷婷五月基地| 97超碰,人人舔,人人操,人人摸 | 欧美超碰亚洲| 五月 丁香 欧美| 欧美大香蕉视频| 大香蕉久久视频久久视频| 色99日韩| 六月丁香色色| 七七色色综合| 伊人啪啪网| 91久久久久久| 久久一热免费视频| 狠狠操狠狠爱| 成人五月天色天堂| 亚洲成人免费电影| 五月总合激情网| 情趣视频66| 国产精品第一国产精品| 26uuu四色| 久久伦乱| 深夜男女福利刺激影院一区完整| 99狠狠色| 激情六月婷婷| 成人网站免费在线播放| 色色五月天丁香婷婷| 狠狠色噜噜色狠狠狠综合久久成人波| 九九精品丁香花| 久久成人性爱| 97色干在线观看| 天天曰夜夜爽| 少妇性按摩无码中文A片| 天天爽在线视频| 色玖玖综合网| 26UUU一区二区| 91要啪| 影音先锋 一区| 欧美色色色色色| 另类国产欧美视频| www.日本91| 玖玖热99| 婷婷伊人久久| 久久婷婷激情| 99久re热视频精品98| 狠狠色色| 国产XXXX搡XXXXX搡麻豆| 五月天激情综合首页| 亚洲激情网| 99在线热| 欧美亚洲色色色色| 夜夜撸日日操| 激情五月天黄色小说| 五月天精品视频| 婷婷色丁香五月| 久久久激情视频| 日本三级日本三级三级人妇四虎| 激情综合五月婷婷| 四月婷婷丁香| 久99久在线观看| 色婷婷五月色| 色丁香久综合在线久综合在线观看| 激情五月天婷婷| 99re热| 精品无码久久久久久久久| 欧美综合丁香网| 欧美色必爱| 丁香五月五月婷婷| 久久五月天激情婷婷| 五月天精品视频| 久久久久婷婷五月热综合| 婷婷五月丁香五月| 五月天激情小说欧美激情| 六月婷婷视频| 在线观看免费视频| 色噜噜狠狠色综合网| 97自拍视频在线| 少妇高潮呻吟A片免费看软件| 激情激情激情网| 任你干嘛免费视频播放| 国产超碰在线| 97在线/亚洲| 婷婷五月天天天日日夜夜| 97一区二区| 日本3级片一区2区| 美国天天日天天操| 97黑人精品区| 超碰只有精品在线| 久久久精品人妻| 淫荡综合网| 欧美日比视频| 玖玖@三月天天丁香婷婷| 五月天激情婷婷| 久月丁香爱婷婷综合| 久草视频大香蕉99| 一起草av| 色色狼人综合| 五月天综合在线观看| 9久热在线视频精品| 中文字幕乱码亚洲精品一区| 秋霞A V毛片| 开心日韩丁香婷婷五月| 国产色色在线| 二色AV| 天堂美国久久| 丁香五月六月| 五月丁香啪啪啪综合网| 五月丁香五月婷婷| 色色哒五月婷婷六月丁香| 综合九九中文字幕| 岛囯综合激情网| 五月丁香成人| 一区二区免费看| 六月丁香婷婷尤物| 丁香五月天婷婷久久| 婷婷丁香成人五月天| 亚洲精品无人区| www.minyis.com【JT】实力收量可预付QQ2101460746 | 五月天婷婷狂暴白浆| 欧美三级欧美一级| 五月色亚洲| 91在线看片| 99热这里只有精品55| 99爱在线免费视频| 亚洲第一第二网站| 五月丁香猫咪久久婷婷综合视频激情四射网入口 | 日日操,夜夜撸| 99re热在线视频| 色九九一二| 69凹凸成人综合网| 99热在线观看| 丁香五月婷婷欧美性爱| 精品久久久中文字幕大豆网推荐理由| 第四色在线观看| 丁香婷婷六月| 欧美大肥婆大肥BBBBB| 婷婷色九月| 五月天婷婷社区| 婷婷五月天精品| www.五月天。com| 婷婷五月丁香在线观看| 人妻在线中文字幕久久| 亚洲性爱日韩无码| 五月婷婷丁香在线| 日本九婷婷| 婷婷色丁香五月| 婷婷五月天国产精品| 五月日韩中文字幕| 五月婷婷丁香综合,亚洲天堂| 大香蕉五月婷婷丁香| 大战熟女丰满人妻AV| 五月天婷婷AV| 99热免费精品| 欧美成人AAA片一区国产精品| 久久婷婷啪啪视频| 99激情| 狠狠狠狠狠干| 亚洲黄色操逼| 久久影视婷婷五月| 97亚洲色 torrent magnet| 狠狠久久婷婷| 九九熱最新視頻| site:hcxsz888.com| 五月丁香婷婷在线综合蜜桃| 伊人婷婷五月| 五月天社区| 久婷婷婷| 亚洲啪啪啪啪| 日日色综合| 极品人妻VIDEOSSS人妻| 停停六月 综合| 丁香婷婷色情| 激情五月无码| 久久婷五月综合| 九九色图| 亚洲成人日韩无码精品| 免费播放片大片| 久久五月激情| 激情桃色网 | 日本五月天一页| 久久丁香综合| 激情又色又爽又黄的A片| 激情色五月天| 99色综合| 99热这里只有精品3| 影音先锋一区二区三区| 黄色网址五月婷婷| 久久久五月天| 五月天婷婷亚洲| 色五月网址| 日韩av一区二区在线/日产精品久久久| 97在线观视频免费观看 | 五月丁香综合激情网| 五月天婷五月天综合网小说首页-五月天激激婷婷大综合,婷婷亚洲综合五月天小说 | 开心色播色五月婷婷| 激情婷婷狠狠干| 九九精品在线网| 亚洲乱码w在线观看| 久久人妻视频| 99热综合色图| 激情网婷婷婷| 九九99精品视频在线观看| 久久99激情五月天| 另类综合激情| 欧美日韩aaa| 99精品在线观看| 婷婷激情啪啪| 狠狠干五码| 精品久久99| 五月婷婷玖玖综合玖玖爱| 91黄址| 婷婷之六月丁香| 五月婷精品| 婷婷99视频在线| 欧洲综合视频| 淫荡工a| 26uuu国产| 九月色婷婷综合| 亚洲成人电影aaaa| 一级性爱视频| 五月九九综合| 99视频精品8| 成片免费观看视频大全| 台湾无码A片一区二区| 婷婷激情五月天色| 九九Av| 久超超碰| 亚洲AV综合网| 五月丁香六月综合基地| 亭亭五月激情亚洲在线| 国产毛片精品一区二区色欲黄A片| 久久婷婷五月综合色区| 蜜臀九九九九| se色婷婷视频| 久久久五月婷婷| 五月婷婷狠狠干| 9 9 9色色| 婷婷五月丁香综合网| 五月丁久久| 婷婷激情五月天激情在线| 婷婷五月天性| 欧美日韩国产一二区| 久久98| www.久久爱.com| 欧美性交一区二区三区| 日日干日日| 午夜丁香 婷婷| 开心激情播播五月天| 五月日韩中文字幕| www激情网站| 另类小说色婷婷| 欧美激情伊人| 99ri在线观看视频| 69堂午夜视频最新地址| 无码人妻精品一区二区蜜桃色欲| 亚洲九九免费| 久久婷婷五月天丁香| va婷婷在线免费观看| 午夜天天精品视频| 婷婷五月图片小说网| 在线播放成人| 国产玖玖资源| 久热99热| 五月婷婷色| 婷婷激情综合色五月久久,色婷婷丁香花,丁香婷婷五月情天,久久婷婷五月综合色 | 91se精品国产| 人人摸人人干| 五月天婷五月天综合网小说首页-五月天激激婷婷大综合,婷婷亚洲综合五月天小说 | 久久久久久天天日天天爱| 色中色综合| 777.色色| 婷婷成人五月天成人文学| 天天激情综合| 三日本无码| 99热免费观看| 9l视频自拍9l九色9l成人| 婷婷综合视频| 五月丁香A片| 五月丁香啪啪| 久久思思精品| 婷婷久久久| 婷婷综合五月天| www.夜夜騎夜夜狠| 九九精品综合| 91色五月在线观看| 大香蕉婷婷色| 伊人干综合| 国产高潮A片羞羞视频涩涩| 99热国产在线| 亚洲色色色色色| 色婷婷成人| 亚洲五月天婷婷在线| 久久最新色| 日本99在线| 无码一区二区三区四区五区| 热99热久| 激情丁香五月| 99福利导航| 色婷婷丁香五月在线| 五月婷色丁香| 国产精品18久久久| 影音先锋777xfplay色资源网站| 亚洲第一黄网| 久久久久五月丁香| 激情小说五月天| 91精品久久久久、久五月天| 色五月婷婷、老熟女| 日本婷婷激情四射中文字幕在线观看| 超碰人人操人人干| 婷婷色正月| av婷婷丁香 六月| 丁香五月婷婷综合激情啪啪啪啪啪啪啪 | 91九色在线视频| 五月激情另类| 色婷操逼| 婷婷丁香花五月天| 综合久久综合综合| 潘金莲AAAAAAAAAA| 少妇人妻偷人精品无码视频新浪| 日韩成人综合网| 欧美日韩AAA| 亚洲无码成人网| WWW.久久久久久久久久久久久| 韩国真做片在线观看| h亚洲| 婷婷五月天男人影院色色网| 天天日天天摸天天| 性爱七区| 久草丁香婷婷1024| 激情综合五月天| 99热久草| 亚洲99在线| 午夜爱爱网站| 激情五月婷婷视频一区二区三区| 婷婷丁香五月综合久久| 国产婷伊人| 91啪啪视频| 久久婷婷网站| 国产成人AV在线| 岛国av网| 天天日天天操天天干| 男人的天堂999| 色婷视频| 婷婷五月成年人| 性色人人爽| 免费亚洲婷婷中文字幕| 91色综合| 五月婷婷六月丁香免费| 欧韩性爱| 日本va网站| 天天看片日日夜夜| 狠狠操天天操综合| 99热这里只有精品96| 翔田千里aV中文字幕| 九九热超碰| 婷婷色在线| 九九热超碰| 99小视频在线| 色色色视频| 在线观看欧美| 97天堂| 99热热热国产超碰| 91玖玖| 亚洲中文av| 九九精品在线视频观看| 久久久com| 亚洲AV无码一区二| 色九月| 激情 五月 婷婷 丁香| 日韩久久视频| 久久与婷婷| 天天操夜夜玩!| 五月天婷婷视频30| 天天激情| 少妇高潮一区二区三区99欧美| 噜噜干日本| 99色婷婷| wwww.色婷婷| 正宗黄色毛片| a色色片| 午夜精品777| 天天摸天天日天天舔| 丁香五月色| 久久99久久99精品免视看婷婷| 五月综合色| 狠狠婷婷色综合| 久久五月婷婷视频| 亚洲色爽| 婷婷五月色| 五月天婷婷久久视频| 日韩中文字幕| 亚洲啪啪网| 六月婷婷俺也去| 岛国av电影网站| www.yw色| AV成人在线网站| 五月色亚洲| 久久香蕉影院| 色婷婷成人五月| 91超碰九色| 久综合4| 五月天丁香婷| 色噜噜在线| 日本在线视频播放91| 激情五月色婷婷| 日本97人人| 婷婷色网| 99精品热| 丁香色婷婷色手机免费在线| 亚洲中文字幕AV| www开心激情网| 99久在线视频| 啪啪五月婷婷| 五月深爱婷婷| 色五月激情婷婷| 激情五月天.色网| 99re热精品在线视频| 亚洲色模骚货| 国产精品18久久久| 激情婷婷丁香五月天小说| 91啪级电影| 五月丁香琪琪| 亚洲精品网址| 五月天a婷婷伊人| 婷婷五月丁香啪啪| 国产91资源在线| 五月丁香综合啪啪| 2017人人操| 亚洲182在线观看| 久久丁香婷婷五月天| 五月丁香成人小说| 久热爱大香蕉在线蜜臀悦色| 色婷五月天网站| 9久久精品| 99ri精品在线观看| 99综合一区| 综合久久久| 丁香五月大香蕉AV| 激情综合五月婷婷六月丁香| 五月天丁香婷婷视频网址| 99热无码精品| 91一起操| 丁香五月激情六月欧亚激情综合导航| 色色色婷婷五月| 色婷婷影音| 婷婷五月天激情影片| 九九热在线视频| 亚洲色五月| 91viP在线看| 国产操B视频| 激情五月天影院| 丁香五月婷婷总啪啪| 色综合夜夜| 婷婷婷婷婷开心无码播放| 欧美成人网婷婷综合在线| 99热在线观看| 成人综合AV| 在线观看av网站| 丁香五月网| 俺去也五月天婷婷| 久久婷婷的综合色丁香五月| 久久九九热视频| 午夜AV网| 色五月五月天色婷婷色五月| 丁香久久五月婷综合| 青青草原伊人网| 亚洲人妻Av| 99色中文| 精a品a视a频| 五月丁香啪啪啪| 五月天婷婷在线观看精品男人| 开心婷婷五月| 伊人婷婷激情| 色婷婷小视频| 日本久久人| 成人在线不卡| 天天爽天天| 丁香婷婷五月综合影院| 99精品免费| 一區四區歐美日韓| 成人精品网站在线观看| 五月激情网站| 综合五月天亚洲婷婷| 午夜不卡久久精品无码免费| 激情综合色| WwW色婷婷| 99热这里只有精品16| 亚洲一区二区色图-亚洲精品国产精品乱码-成人AV | 亚洲五月天婷婷| 色婷婷欧美在线| 综合久久五| 五月天婷婷基地| 色吧综合网| 人与禽A片啪啪| 日日舔夜夜操| 91美女被操| 丁香五月激情啪啪| 国精产品一区二区三区| 熟女网站久久| 五月婷婷开心深| 精品人妻午夜一区二区三区四区 | 开心五月色婷婷综合开心网| 深爱开心激情| 久久五月天激情婷婷| 一级黄色操B| 老司机伊人| 夜夜爽天操| 色一区高清| 99九九免费精品| 99这里只有精品| 色噜噜,噜噜色| 午夜丁香六月婷| 久久香蕉网| 激情五月婷婷开心网| 天天日天天舔天天摸| 九月婷婷人人操人人舔人人爱| 99毛片| 伍月婷丁香婷| 亚洲色婷婷五月天| 思思久久99热只有频精品66| 日本久久高清| 丁香六月五月天| 秋霞三级影视资源| 久操热| 丁香香五月激情免费视频| WWW99热| 五月丁香六月婷婷网| 激情五月天激情综合网| 情婷婷五月天在线| 亚洲色久| 操比激情五月综合| 大伊香蕉精品视频在线| 日韩成人无码人妻| 色色色色热| 五月婷婷m| 成人AV免费观看| 伊人热婷婷| 五月婷婷影视| 亚洲中文字幕在线观看| XX色综合| 久久精典| 久久视频婷婷| 亚洲色热| 国产成人99久久亚洲综合精品| 九九热在线观看6| 热热99爱爱| 婷婷五月色综合香五月| 五月丁香六月色婷婷| 国产熟女大叫受不了| 日本熟女啪啪| 丁香婷婷综合色五月激情国产基地| 狠狠狠狠狠| AA久久| 五月丁香六月欧美综合网站| 日日夜夜久| 日韩在线五月天婷婷| 中文字幕在线免费观看视频| 91无码视频| 色婷婷成人做爰A片免费看网站| 日韩av大全| 五月婷婷综合色啪首页| 五月丁香六月情婷婷久久| 桃色激情婷婷伊人网| 丁香五月98| 亚洲日韩人妻操逼| 六月婷五月丁香| 五月丁香六月婷| 青草网在线观看| 天天干,天天舔| 色婷婷XXXXX| 成人欧美一区二区三区在线观看| 色五月天综合| 天天日天天干天天插天天射| 激情第四色| 五月天丁香成人| 超碰色综合| 色婷婷小说网| 9色91视频| 九热视频在线伦| 中文字幕AV网址| 超碰91在线| 丁香五月自拍| 色色综合色| 丁香五月人妻| www.色婷婷| 1024欧美看片| 天天肏天天肏天天肏| 九九久久网| 精品一区二区三区四区五区六区 | 婷婷性爱| 91美女艹逼网站| 9l视频自拍九色9l视频在线观看| 丁香五月网站| 色五月色五天色情网| 婷婷五月天综合在线| 色欲色香综合网| 成AV人片一区二区三区久久| 免费色婷婷| www.五月婷婷| www.五月丁香av| 99久久这里只有精品| 五月天激情四射| 岛囯综合激情网| 黄网在线免费观| 91视频一起草| 只有久久精品免费| 婷婷久久综合| www.久久久久久久久久.com| 9|无码久久久久久| 天天爽天天做| 99成人在线观看| 久久久久视剧HD| 激情五月开心五月在线视频| 亚洲A色| 99精品国产热久久91色欲| 丁香五月婷婷欧美性爱| AV在线观看网站| 精久久色| 日本狠狠干| 色欧美日| 丁香五月综合福利视频导航| 9色在线| 丁香五月婷婷国产在线| 亚洲视99| 丁香色色色| 色婷婷啪啪综合网| 五月激情综合网| 开心五月深爱五月丁香五月激情五月| 天天干天天干天天干天天干天天干| 六月丁香开心婷婷欧美| 色播五月丁香婷婷| 激情综合婷婷| 久热re在线视频| 色五月五月天| 色五月播五月| 色9999日韩国产| 五月天婷婷社区| 狠狠综合网| 91丨九色丨丰满人妖| 五月丁香激情婷婷综合| 亚洲V国产V欧美V久久久久久| 大香蕉婷婷久久| av操一操| 久久久这里有精品| 99热最新| 丁香婷婷欧美综合| 亚洲激情五月丁香久久久久| 激情综合色| 日本久久性| 婷婷五月天免费视频| 国产AV一区二区三区日韩| 操97在线观看| 激情五月综亚网| 99精品视频在线观看| 婷婷成人综合| 午夜丁香| 开心五月婷婷激情| 思思热精品在线视频| 蜜乳久AV| 久久色这里只有精品| 97色五月婷婷在线| 开心五月丁香啪| 激情五月天久久| 91精品电影18T| 国产毛片精品一区二区色欲黄A片| 99热资源在线| 99热网址| 伊人激情综合网| 成人AV在线网站| 一起草无码视频| 色情五月综合婷婷| 国产精品噜噜在线视频| 丰满老熟妇BBBBB搡BBB| 狠狠色丁香婷婷基地| 人妻第九页| 五月婷婷激情性爱| 色久天| 日韩狠狠色婷婷| 亚洲精品无人区| 久久这里只| 久九九热| 亚洲中文字幕网| AV天堂淫乩| 五月天sesese| 色狠狠婷婷| 97人人干人人操| 激情五月天视频| 丁香五月六月欧美| 九九久久高清| 91久操| 婷婷开心青青草| 99干免费视频| 久久久五月五丁香| 激情综合五月激情XXXX| 少妇水多A片太爽了| 婷婷五月天精品| 激情五月婷| 大战熟女丰满人妻AV| 婷婷五月六月丁香综合| 九九热91| 日本高清久久| 五月丁香六月婷婷的女人| 在线综合啪| 网色99| 色婷婷六月激情| 我想看国产大学生口爆吞精的视频| 天天干天天操天天射| 综合狠狠伊人| 九九精品re免费视频| 久久婷婷网| 久久婷婷五月综合色播| 99五月婷| 婷婷五月天激情四射| 五月丁香中文| 天天肏屄夜夜爽| 丁香六月色| a久久| 天天在线久久综合| 六月婷婷综合久久| 成人精品视频99在线观看免费| 九九热视频这里只有精品| 久热九九| av超碰在线| 97色碰| 激情婷婷五月天| 天天成人综合视频| 成人国产综合| 不卡在线超碰| 九九热99热| 丁香婷婷成人网| 久久亚洲精品成人无码网站导航| 欧美久久久久久久久中文字幕| 疯狂做受XXXX高潮A片| 色噜噜狠噜噜视频| 丁香久久五月天视频在线观看| 五月丁香久久网| 性爱激情久久| 人妻体体内射精一区二区 | 丁香五月天日韩无码| 日本三级中国三级99人妇网站| 丁香五月婷婷视频| 婷婷丁香五月天在线| 精品久久99| 懂色av蜜臀av粉嫩av永陈冠希| 色综色网| 丁香五月天成人| 久久人妻乱子伦| 激情五月天啪啪| 日逼影音先锋AV男人资源站| 国产精产国品一二三在观看| 激情五月丁香五月| 大香蕉九操| 天天插综合| 天天做天天双| 五月六月播婷婷| 99久超碰| 婷婷五月激情的图片| 精品国产a| 色综合激情图区| 免费看欧美成人A片无码| 在线日韩视频| 色色激情| 99在线热| 日本三级中国三级99人妇网站| 婷婷激情综合| 最新va在线播放| 26uuu欧美宗合| 五月色俺婷婷| 99爱在线视频观看| 五月停停丁香| 99免费视频网| 五月五婷婷| XX色综合| 久久丁香五月| 五月天四色房丁香亭亭| 深爱激情五月网| 五月丁香婷婷综合视频| 日日操日日撸| 看片视频在线免费日产在线看| 五月丁香六月玩女人| 丁香色婷婷| Va另类视频| 五月婷婷狠狠干| 精品色色色| 婷婷狠狠操| 五月婷婷视频| 99色色网| 超碰在线国产| 香蕉AV777XXX色综合一区| 久久久国产精品黄毛片| 在线看九一V图片| 婷婷伊人綜合中文| www.久久9| 色婷婷久久综合| 丁香婷婷激情综合五月激情| 丁香婷婷少妇| 五月丁香亭亭天天舔| 青青热久精品视频在线观看| 亚洲久热无码| 五月丁香成人视频| 婷婷激情综合网| 激情婷婷丁香| 超碰日韩成人| 99热亚洲综合| 中文字幕综合网| 99高级会所久久| 三级大香蕉网| 成人婷婷| 亚洲色综合| 精品亚洲国产成AV人片传媒| 激情五月九九九| 啪啪综合| 婷婷色色播五月天| 五月婷婷之综合激情| 91久久久久久久久18| 操操啪| 欧美操我| 欧美内射AA| 久久aaaa片一区二区| 人人爱人人草| 这里只有精品视频在线| 五月丁香色色色| 九色视频91疯狂| 色婷婷狠狠久久综合五月| 综合在线色婷婷| 99综合网| 色色婷婷婷丁香五月天| 看黄的网站18禁| 五月婷婷精品无在线| 婷香五月激情视频| 色婷婷六月天| 日本97在线观看| 六月婷婷天天操夜夜爽视频| 六月婷婷激情小说网| 色婷婷www| www.9操| 99热欧美| 亚洲日日操| 欧美激情综合| 91互操| 青青草Avb在线| 啊v视频在线观看| 噜噜色com| 人人摸人人干| 久操人| 色五月激情综合| 色射影院| 97伊人综合婷婷| 夜夜做天天爽| 伊人在线视频| 狠狠色噜噜狠狠| 日日狠狠久久偷偷四色综合免费 | 亚洲AV无码影院| 第四色婷婷日本| 五月丁香六月激情综合| 久久久天堂国产精品女人| 99热9| 性色天| 色拍九九九| 丁香婷婷五月天亚洲| 91超级碰碰| 伊人三级激情| 噜噜色噜噜网| 午夜成人片400| 激情宗合哪里能看| 操人久久| 9超碰在线| 色综合综合网| 日韩国产在线精品| 欧洲亚洲最新精品| 欧美色色色| 久操无码| 开心激情站| 日本视频欧美观看免费| 婷婷五月天亚洲综合| 91男同视频| 六月婷婷视频| 狠狠操天天干| 丁香五月网站| 亚洲va成人va成人va在线观看| 超碰99热精品| 性生活久久朋友人妻| WWW.久久.COM| 中文字幕在线免费观看视频| 久9久9热久热| 4399在线观看免费高清黄色视频| 裸体美女丁香五月天。| 亚洲人成网站999综合| 狠狠色丁香久久婷婷综合五月| 中文字幕按摩做爰| www.日日夜夜| 99re热视频这里只精品| 色综合久久伊伊婷婷五月| 婷婷五月激情综合| 加勒比色色| 成人综合网站| 九九视频热| 性欧美大战久久久久久久83| 五月噜噜| 狠狠色噜噜狠狠狠狠狠色综合久久| 快色t v在线入口| www.婷婷.com| www色婷婷com| 类似婷婷激情综合网站| 99日本在线| 丁香五月大香蕉| 丁香六月婷婷一区| 九月婷婷综合| 天天肏天天爽夜夜爽| 大香蕉伊人丁香五月| 天天日,天天插| 毛v一区二区视频| 久久久WWW| 九九热这里只有精品7| 五月丁香综合网| 色五月五月丁香| 色色色五月| 视频一二区| wuyuedingxiang99| 狠狠操狠狠插| 六月婷婷网站| 波多野结衣AV无码Porn| 久综合网| 99热这里只有精品热| WWW色色色COM| 91爱操| 久久五月人人摸| 精品婷婷丁香五| 99在线热视频| 69堂午夜视频最新地址| 天堂久久丁香| 狼人狠狠操| 天天拍夜夜撸| 9热在线视频精品| 五月婷婷色影院| 情五月亚洲婷婷| 成人AV片播放| 伊人久久婷婷| 丁香5月啪啪| 天天干天天曰天天射| 久久婷色| 玖久精品视频9| 欧美超级视频97| 大香蕉AV在线| 亚洲第一综合| 久热视频A.| 超碰在线94| 婷婷五月婷婷| 五月婷婷六月丁香综合在线| 综合色播| 99色免费在线观看| 99精色| 99色免费观看全部| 四色永久成人网站| 亚洲综合欧美色丁香婷婷888月图片| 超碰com| site:publishdd.com| 超碰人人在线观看| 亚洲天堂色色| 天天爱综合网| 热久久99视频| 91久久综合亚洲鲁鲁五月天| 精品亚洲国产成AV人片传媒| 影音先锋一区| 丁香激激情网| 婷婷久久综合久| 色播色丁香五月| 欧美成人AAA片一区国产精品| 丁香五月天视频| 丁香五月23111| 丁香五月婷婷啪啪| 五月婷婷成人| 久热精彩视频98| 色婷婷香蕉| 91视频精品99| 色色 亚洲| 99 这里只有精品| 激情五月天视频| 婷婷99狠狠躁天天躁中文| 影音先锋自拍网| 99热这里精品| 日本色爽| 99热.com| 五月天停停成人网| 色七色九九| 五月婷婷另类| 丁香五月色五月| 精品综合爱| 丁香五月婷婷av影院| 年轻的妺妺伦理HD中文| 丁香五月激情婷婷婷婷在线观看| 噜噜噜噜在线| 26uuuavcom| 色一区高清| 午夜丁香婷婷| 色婷婷久久天天性爱| 天天se在线视频| 色啪久| 色综合99无码| 亚洲欧美综合7777色亭亭| 超碰99在线观看| www久久99| 五月天开心激情综合网| 99ri国产| 丁香花五月天激情| 日日干天天射| 五月天色图| 九九亚洲综合| www.91.com黄| 九九热大香蕉| 超碰成人电影| 久久久久久久97| 久操人妻| 久机视频这只有精品| 丁香五月天堂| 99久久婷婷国产综合精品草原| 日本美女上人| 天天做天天爱天天摸| 婷婷99视频精品| 91成人品| 五月婷婷激情四季| 五月天五月色婷婷综合| 狠狠操天天操天天操| 婷婷五月天777| 99色播| 草美女在线观看视频在线播放| 丁香六月色情| 亚洲 五月 婷婷 成人| 99日韩网站| 五月天婷婷在线视频| 99热都是精品| 91一起艹| 99自拍视频| 免费无码毛片一区二区A片| 人妻激情久久| 天天综合色99| 成人电影在线免费试看| 伊人激情网| 97影院一级片| 色情·com| 婷婷免费无视频| 一本色道久久综合狠狠躁小说| 五月天色丁香| 亚洲另类在线观看| 国产69久久久欧美黑人A片| 五月天俺去也| 亚洲成人日韩无码精品| 五月花激情网| 激情九月婷婷| 亚洲激情校园| 天天碰夜夜爽| 五月精品| 91啪啪视频| 九九精品9| 激情五月综合久久| 天天摸.天天mo| 我爱婷婷五月天综合88| 99性爱视频| 天天肏高清在线| 色色五月天激情| 91碰操| 91久久精品无码一区二区三区| WWW色综合| 久久五月丁香综合17C| 婷婷六月久久综合导航| 高清无码视频网址| 婷婷综合中文| 丁香五月首页| 丁香婷婷色五月合集| 夜夜撸日日操| 免费视频WWW在线观看网站| 任我肏视频精品| 久青青久| 国产精品VA在线| 婷婷五月天激情小说| 九月婷婷综合色干| 色吧综合网| 99热精品在线播放| 天天插天天射| 啪啪操操| 国产高清RV综合aVa| 夜夜躁爽日日| 免费精品99| 色综合天堂| 人妻熟女一区二区AV| 久久精品婷婷五月丁香| 五月婷婷色吧!| 久久免费操| 五月婷婷综合天天操| 色九九综合| 丁香五月偷拍| 久婷婷视平| 大香蕉婷婷| 色欲午夜无码久久久久久张津瑜| 成人 在线观看国产| 五月丁香免费视频| 久久婷婷五月| 激情网五月| 性视频久久| www.99热这里精品| 日本不卡高字幕在线2019| 亚洲av综合网| 66色在线日韩| 久久久国产精品黄毛片| 九九热这里只有精品556| 欧美色五月| 九九99精品视品| 综合激情网| 五月丁香久久综合| 青青青在线视频国产| 97碰碰视频在线观看| 五月婷婷激情视频| 国产熟妇乱子伦hd| 9.1综合网| 婷婷五月天成人小说| 大香蕉 婷婷| 五月激情偷拍婷婷| 亚洲激情五月天| 五月婷网| 内射综合网| 亚洲操B视频| 六月综合婷婷开心伊人| 51精品国内探花| 99久久久| 天天日天天干天天操| 男人的天堂在线婷婷| 国产精品久久久60086| 日本狠狠干| 99综合熟女| 激情纯色婷婷五月天在线不卡视频| 深爱激情综合| 91精品91久久久久77777| 六月婷婷狠狠| 91色逼| 9999热在线免费观看| 99A片| 六月婷婷最新网址| 99国产视频网| 9 9热这里有精品| 激情六月丁| 色久影院| 久99久在线观看| www超碰| 99热66| 色五月丁香激情|