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
返回資訊列表
久久新地址| 天堂成人A片永久免费网站| 五月丁香六月色婷婷综合五月天| 日韩五月婷婷久久| 丁香五月伊人| 香焦网五月天| 凹凸操Av| 男人視頻站| 色99视频| 婷婷激情综合| 九九机热| 六月丁香深深爱| 97婷婷狠狠久久综合9色| 亚洲热综合| 夜夜操天天爽| 开心婷婷五月花| 99热在线看| 久久久天堂国产精品女人| 国产午夜一区二区三区| 思思精品久久艹| 色色婷婷五月天| 丁香激情六月天婷婷| 伊人久久大香线蕉av一区| 婷婷丁香九色| 99免费超碰在线| 99久久99久久综合| 五月婷婷黄色| 在线视频另类| 99日本黄站| 天天做天天爱天天综合网| 99热在线播放| 深爱五月婷婷开心中文字幕| 人妻自慰在线| 亚洲俩性性爱图片久久第六页| 亚洲婷婷基地| 大香蕉婷婷久久| 五月丁香A片| 亚洲国产精品SUV| 色播婷婷五月天| 泰州成人视频| 日本婷婷| 狠狠综合网| 99精品免费欧美小视频| 国产婷婷五月在线视频| 成人精品亚洲性爱| 久久精彩免费视频精彩免费视频| 丁香激情四射| 国产成人网址| 五月天婷五月天综合网在线观| 狠狠爱综合网| 99久久a线观| 超碰在线看| 99WWW免费视频| 婷婷丁香五月天大香蕉| 七七色色综合| 成人短视频在线观看| 五月久久婷婷天堂视频| 丁香九月婷| 婷婷九九| 中文字幕丰满乱孑伦无码专区| 日韩九区| 激情婷婷内射| 婷婷丁香综合成人| 综合五月婷婷| 丁香六月啪| 97久久精品| 五月婷婷人人人操| 日本久久99| 热久久这里只有精品| 色综合久| 激情五月开心五月丁香五月| nvrentiantang av| 丁香婷婷色五月| 久久婷婷综合五月天| 久久婷婷综合五月天| 久机视频这只有精品| 国产日比| 中国女人做爰A片| 五月日韩中文字幕| 久久玖玖综合| 这里只精品| 五月社区婷婷激情| 亚洲综合另类| 青柠影视免费高清电视剧| 五月天社区婷婷| 九九爱精品网站| 色 五月 天 婷婷 丁香 九月| 色婷婷色综合激情91| 91打屁股视频网站| 情欲综合网| www.夜夜騎夜夜狠| 超碰国产在线| 婷婷丁香久久网| 丁香久久九九99| 啪啪婷婷五月天激情| 欧美性二区| 婷婷六月天精品| 欧美激情综合五月色丁香| 亚洲五月丁香六月婷婷| 大伊香蕉精品视频在线| 五月丁香免费视频| 色综色五月天婷婷| 久热这里只有精品6| 刘玥av在线| 天天干天天操天天射| 丁香六月啪啪| 俺也去在线视频| 欧美在线操| 亚洲乱码日产精品BD| 狠狠色综合图片| 中文精品在| 天天做天天干天天综合网| 五月婷婷成人w| 久久婷婷色| 五月色婷婷激情| 日韩精品一品二区三区的使用体验| 五月婷综合| 丁香情色五月| 亚洲色色色色色| 久热播这里只有精品| 激情99| 五月丁香啪啪啪| 99久久色| 久色视频首页| 91综合国免费久入| 十区AV| 久久黄色免费视频| 任你草| 淫五月停停| 久婷| 五月婷婷日| 九九综合影音先锋| 99精品这里只有免费视频| 欧美va在线观看| 国产古装妇女野外A片| 天堂五月婷婷| 色 色 色综合com| 丰满少妇猛烈A片免费看观看| 婷婷天堂视频| 精品乱码久久久久| 丁香五月婷婷少妇| 亚洲99热| av一区二区电影免费在线观看| 丁香六月婷婷综合激情欧美 | 毛片色五月| 99re6久热只有精品6在线直播| 精品视频网| 99re在线观看视频| 亚洲成人网站在线观看| 色五月激情问网站| 乱岳熟女50岁| 日韩99色| 五月婷婷六月丁香| 99er免费在线观看| 大香蕉手机视频| 9久视频| 五月天成人免费视频| 丝雨一区二区| 国产精品久久7777777精品无码| 夜夜穞天天穞狠狠穞AV美女按摩| 99色看这里只有精品| 婷婷激情性爱| 97碰超级人人看| 99久久6| 婷婷五月天99综合网站| 久久这里有精品99| yirenjiqingshiping| 婷婷大美在线| ..真实国产乱子伦毛片| 99精品22| 久久久久99精品成人网站| 五月丁香六月婷婷网| 丁香五月婷婷五月基地| 婷婷六月天激情| 大操人妻| 丁香五月在线播放| 婷婷五月综合网| 五月丁香婷婷爱| 97超级碰碰碰久久久| www.亚洲激情| WWW、日本色丁香、co m| 欧洲第一久色| 99熟女啪啪视频| 丁香婷婷色色| 国产激情久久| 99国产精品久久久久久久久久久| 色久五月| 五月婷久草| 五月丁香综合激情网| 五月丁香花激情啪啪网| 丁香狠狠色婷婷| 91丨九色丨白浆秘| 婷婷五月天久久久| 五月天婷婷五月| 99在线视频。| 婷婷九月在线| 久这里只有精品| 天天天天干| 六月婷婷狠狠| 久久婷婷电影| 婷婷综合视频| 久久久精久人妻| 99久久婷婷综合| 色婷婷亚洲六月婷婷中文字幕| 99啪99| 99日韩| 9九热视频| 亚洲欧美在线观看| 色色色图| 婷婷五月激情的图片| www.激情| 99免费| 婷婷射丁香| 亚洲激情在线| 五月婷婷六月丁香在线| 色波激情五月天| 中文字幕视频色婷婷| 欧美xx激情视频在线观看| 日熟女| 亚洲中文字幕AV| 丁香五月综合图片在线观看| 丁香五月停停基地| 无遮挡国产高潮视频免费观看| 99九九视屏| 五月婷婷丁香大香蕉| 丁香五月情| 99re这里只有精品免费| 91啪啪啪啪| 99色免费观看全部| www,色色色网站| 久久久激情| 一区二区成人电影免费播放| 狠狠色婷婷7777久| va婷婷| AV在线免费播放| 久久99久久99精品,久国产,久久精品免费,99久在线,久久久久国产精品免费网站,9 | 色婷婷a v| 久久机热这里只有精品免费视频| 亚洲精品444久久久久久| 激情床戏| 精a品a| 操碰97| 久久九久久| 亚洲中文字幕AV| 九热视频这里只有精品| 色婷婷手机在线| 丁香八月综合激情| 99无码视频| 丁香婷婷视频| 狠狠色婷婷六月激情网| 天天综合亚洲综合网天天αⅴ| 五月色婷丁香| 人妻日日日| 五月丁香婷草| 99爱在线精品视频免费观看| 亚洲AAA| 99热线观看9| 99在线精品免费视频| 91色逼| 天天爽夜夜爽夜爽精品| 亚洲无码成人性爰网| 久操福利| 光棍影院日韩精品| 婷婷色综合中心站| 国产偷人爽久久久久久老妇APP | 无码人妻激情| 激情五月天情色| 99超级碰免费视频| 在线只有精品| 婷婷五月天综合网| 婷婷激情人妻| 五月天激情婷婷| 日日操日日射| 色丁香久久久| 色婷婷丁香中文在线播放| 久久丁香| 思思热天天看| 日日噜狠狠| 99热九九在线| 91人碰| 五月激香蕉网| 久久久久亚洲AV综合| 丁香婷婷色五月激情综合| 91日日日| 99热久草| 99色在线视频| 五月天色婷婷综合| 激情六月天| 婷婷五月天亚洲| 伊人久久婷| 色99在线| 九九色色网| 国产精品国产| 九九热99视频| 热99在线| 人人摸人人干| 丁香性爱在线视频| 色婷婷在线视频观看| 日韩丁香涩| 久久在线视频免费观看| 蜜臀综合久草| 秋霞丝袜啪啪啪| txt五月激情四射网综合俺也来了 五月天婷婷丁香人人操91 | 99精品在这里| 婷婷五月色综合| 五月婷婷在线观看黄| 亚洲另类日本| 丁香成人五月天| 丁香五月天黄色片| 开心五月天激情网| 国产av第一专区| 丝袜熟女一区二区三区| 色婷婷影| 五月婷在线| 成人五月天在线观看| 丁香婷婷人妻| 国产一区男女| 四色五月婷婷| 99性视频| 九九热视频精品999| 久久综合26p| www.玖玖九| 久碰久| 九九热re99re6在线精品| 97丁香五月| www.精品99| 五月天丁香综合| 特级西西4444www无码| 丁香五月性| 五月激情丁香啪啪| 国产精品色婷婷99久久精品| 亚洲第一色网站| 日日夜夜噜噜爽爽| 五月天婷婷丁香导航| 五月丁香激情综合| 亚洲精品一二三| 免费99色| 这里只有精品日韩精品| 五月天六月婷婷| 亚洲AV网站| 色综合久| 国产免费av在线| 久久98| 激情综合色五月六月婷婷| 亚洲亚洲永久无码777777| 97干视频在线| 日曰躁夜夜躁2026| 综合色色婷婷| 一级操逼内射在线视频| 综合激情伊人影视在线| 成人视频婷婷| 九九激情网| 美女被操一区二区| 精品视频这里只有精品| 天天爽,夜夜爽| 亚洲视频五区| 99激情视频| 九九九色综合| 啪啪五月婷婷| 亚洲99激情| 五月婷婷综合丁香视频| 色色色综合网| 综合久久9| 99热这里只有精品23| 色偷偷色婷婷| 色婷婷色综合| 欧美毛片www| 日本三级中文字幕| 91熟妇大香蕉| 久久人妻情侣| 婷婷久久色| 综合久久综合综合| 色五月五月丁香| 天堂久久精品| 亚洲激情| 亚洲九九在线| 俺去也婷婷| 成人在线综合| 丁香五月天激情视频| 成AV人片一区二区三区久久| 亚洲婷婷视频| 九九99九九99| 久久精品99久久久久久久久| 亚洲人妻一区二区 | 久久婷婷色情7777网站| 五月丁香天堂网| WWW.桔色成人.COM| 天天色天天搡| 亚州色色色| 九9九9无码| 伊人午夜综合色啪| 国产伦亲子伦亲子视频观看| 丁香婷婷综合激情五月色,开心五月丁香花综合网,激情综合五月亚洲婷婷,五月天 | 天天草天天舔| 色婷婷综合视频| 欧洲综合视频| 99精品在线观看视频| 97在线视频 欧美| 亭亭色天香| 久久婷色| 激情精品久久| 色综合久| 99热这只有| 色五月 五月婷婷| 超碰免费99| 色五婷婷在线视频| 骚五月婷婷| 一本色道久久综合狠狠躁小说| 青青草婷婷五月天| 五月综合六月婷婷| 激情文学 综合 九月| 国产精品婷婷午夜在线观看| 色情激情五月婷婷| 五月丁香六月情| 久re在线| 99热碰碰| 96精品久久久久久久久| 97人人超| WWW.夜夜操.com| 99热.com| 五月天合网| 国产精品成人在线| 婷婷一本和五月丁香| 中文中文在线| 少妇人妻综合色6699| 色五月天婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷 | 日韩伊人大香蕉| 婷婷开心激情| 色综合久久综合中文综合网| 五月天偷拍| 熟女激情网| 搡BBBB搡BBB搡18| 亚洲 在线 性爱 | 97干欧美| 91一起操| 色婷婷五月亚洲| 亚州第一黄网| 九色无码| 亚洲欧洲99| www.色五月| 色婷婷深爱五月| 这里只有精品96| 99热99干| 大香蕉久久婷婷| 99久久久免费| 丁六月激情| 热99玖玖99玖玖99九九| 日本狠狠色| 五月丁香无码| 搡BBBB搡BBB搡18| www.俺去也com| 色色五月综合| 亚洲欧美婷婷五月色综合| 色五月视频无码播放| 久久性都花花世界成人免费视频| 狠狠干在线| 色婷婷黄色网络| 成人做爰高潮A片免费视频| 久色五月| 婷婷无码视频| 久久五月天激情| 狠狠狠狠狠干| 热99热| 色婷小说| 婷婷视频网| 色婷婷九月| 无码动漫av| www99热| 欧美色五月天| 色婷婷亚洲婷婷| 成人精品视频99在线观看免费| 色婷婷基地| 99在线69| 97自拍视频网| 婷婷综合网站| 天天日综合| 五月丁香六月色婷| 午夜婷婷久久 | 欧美激情五月综合| 天天综合色99| 五月丁香色综合| 五月天天爽| 五月婷婷深深的爱| 色青五月天| 亚洲精品V天堂中文字幕| 欧美色婷婷| 久久婷婷丁香五月一二三| 日韩野外 无套| 色香蕉影院| 激情网婷婷婷| 777久久精品| 五月婷婷亚洲色图| 超碰9799| 丁香六月婷婷久久综合| 久久丝袜婷婷| 天天日日| 99精品国产在热久久| 久久综合影院| 婷婷五月天综合小说网| 五月丁香综合伦理片| 色色五月天网站| www.婷婷激情网.com| 天天舔天天爽| 九九AV在线| 99热网站| 国产精品五月天婷婷| 五五月丁香花激情综合网| 日韩高清久久| 日韩性爱无码| 成人五月丁香花| 99在线精品视频| 91丨九色丨熟女丰满| 狠狠操在线视频| 色婷婷基地| 97婷婷丁香五月天激情图片| 综合久久十| 丰满老熟妇BBBBB搡BBB| 久99热| 99久久婷婷国产综合| 五月天久久91| 99久久综合| 久色国产| 天天色综合网吨吧| 丁香婷婷综合激情五月色| 激情的五月| 色狠狠狠干| 国产99久久久| 精品人人操| 欧美综合五月丁香六月婷| 99啪啪骑| 亚洲在线视频321| 操b视频在线观看一区二区| 91大屁股在线| 人人视频人人干人人做| 婷婷色Av| 激情五月丁香综合网站| 激情五月婷婷综合色播小说| 伊人五月天婷婷| 六月五月久久丁香| 婷婷激情五月综合丁香社| 五月天综合区| Www,五月天| 日日操日日射| 99精色| 狠狠xx| 色XX综合网| 夜夜撸夜夜骑| 五月婷婷色色色| 五月婷婷色| 久热超碰| 国产又粗又大又爽又黄| 伊人五月婷| 97超级碰碰碰久久久| 人操91在线| 久久日韩婷婷五月| 国产成人综合在线| 五月丁香猫咪久久婷婷综合视频激情四射网入口 | 五月天天天色| 狠狠草在线观看| 狠狠狠狠狠狠| 激情5月婷婷| 激情婷婷五月丁香啪啪啪| 婷婷五月丁香成人网| 狠狠色狠狠爱| 9色在线| 欧美激情五月综合| 五月花婷婷丁香| 五月天天天色| 激情综合网五月激情| 国产精产国品一二三在观看| 色五月丁香五| 欧美日韩成人在线网站| 99 热| 777精品成人a v久久| 色XX综合网| 婷婷欧美激情综合| 91蜜桃婷婷狠狠久久综合9色| 中文字幕无线久必| 国产肏屄大片| 国产精品噜噜在线视频| 日日撸夜夜操| www.婷婷五月| 丁香六月婷婷激情| 婷婷久久亚洲| 婷婷爱婷婷| 婷婷五月婷婷| 亚洲丁香花色| 五月婷天堂视频| 色呦呦免费观看| 婷婷六月中文字幕| 91狠狠色| 一本久久婷婷| 亚洲五月婷| 人人做人人看人人摸| 五月婷视频| 国产激情综合五月久久| 久久久噜噜噜www成人| 人妻AV在线| 日本一区二区三区精品视频| 久久资源网五月婷| 五月天精品综合| 五月丁香久久网| 一级AV片| 久久五月综合| 久久99热这里只有精品 | 久久永久视频| 色欲久久99精品久久久久久| 色噜噜狠狠色综| 新精品99| AA片在线观看视频在线播放| 丁香九月综合激情| 激情五月色综合| 天天狠天天叉| 国产精品色婷婷久久久精品| 激情黄色小说五月天| 欧美婷婷日本| 色 噜噜 九月 婷婷| 婷婷六月丁香在线| 婷婷成人五月天成人文学| 亚洲精品色| 91精品又长又大又粗又爽又猛| 婷婷五月丁香高清无码| 久久综合中文| 综合玖玖偷拍| 天天日天天日天天搞| 一本色道久久综合狠狠躁小说| 91综合视频在线| 色播五月丁香婷婷| 激情五月天电影| 伊人久久大香天蕉亚洲特级| 久久机热思思热| 大香蕉啪啪啪| 婷婷导航| 伊人久久大香线蕉av最新| 综合另类激情| 激情九九综合网| 大香蕉婷婷| 久婷| 91九色精品女同系列| 亚洲av成人一区二区电影在线| 婷婷五月丁香高清无码| 久青草影院| 色婷婷久久久| 婷婷五月天丁香花| 欧美成人精品A片免费一区99| 久9精品视频在线| 亚洲中文无码成人| 激情婷婷五月天| 91碰碰| 91操操| 色婷婷五月色| 丁香色成人| 日韩av网站在线观看| 五月天婷婷在线播放| 91久女| 91精品国产综合久久密臀| 成熟妇人A片免费看网站| 人妻性爱av网站| 99热这里只有精品22| 五月婷婷六月丁香综合| 秋霞A V毛片| 九九99精品视频| 涩涩五月天| 黄色一级影片| 欧洲不卡视频| 久久久精品视频79| 99爱爱| 狠狠色丁香综合| 久久激情网| 日本va欧美va精品发布视频| 无码少妇高潮喷水A片免费| 婷婷深爱五月天在线| 日本欧美成人片AAAA| 另类婷婷丁香| 影音先锋男士资源网一区| 99综合免费视频| AⅤ在线播放网| 婷婷五月天无码| www.com亚洲网站在线免费| 国产精品日日躁夜夜躁| 大香蕉AV在线| 99热这里有精品| 五月天婷婷导航| 婷婷九月久久| 超碰在线观看9| 大香蕉五月天婷婷| 人人操AV| 9久热这里只有精品| 九九热99精品| a在线观看| 丁香综合伊人| 国产女生爱爱AA| 久久久久久97| www色婷婷久久综合久色 | 精品无码久久久久久久久| 日韩精品色| 777久久久| 五月婷婷婷婷| 五月丁香婷婷啪啪综合网| 九九热99久久99| 另类视频综合| tingtingzonghewang| 久久99日本精品视频免费观看| 天天爱天天爽| 思思热在线视频观看精品| 成人婷婷色综合| 丁香婷婷激情六月五月开心| 天天色天天色天天色天天色天天色天天色| 91黄色五月天视频| 色五月色五天色情网| 99热这里有精品6| 婷婷五月超碰| 色色色99| 五月成人网站| 色五月丁香五月五月婷婷| 婷婷综合天堂| 99热.com| 色五月婷婷影院| 久久综合99| 9久操| 天天肏夜夜肏| 五月亭亭直播| 天天爽天天弄| 成人永久免费视频在线观看| 最新高清无码专区| 亚洲成人网站在线播放| 久久九九99字幕| 丁香六月狠狠干| 激情五月天天| 亚洲色网址| 婷婷婷婷婷婷婷婷| 夜夜天天久久婷婷| 91丨九色丨丰满人妖| 亚洲无码性爱| 丁香五月成人| 97视频.干com| 婷婷五月天成人小说| 日日日日做夜夜夜夜无码| 激情综合网色五月| 丁香狠狠色婷婷久久无码视频| 六月丁香五月天| 亚洲色优| 伊人久久五月天| 开心婷婷五月激情网小说 | 婷婷五月伦理网站| 99久久这里只有精品免费官网| 五月丁香激情综合六月涩涩爱| 久久色六月| 丁香五月成人网| 五月丁香大相交| 久播影院免费观看电视剧大全最新网| 日日噜噜久久婷婷五月天 | 99精品热| 色婷婷五月天综合网| WWW丁香五月| 97九色| 亚洲操B视频| 91丁香色五月| 乱精品一区字幕二区| 噜噜噜久久| 五月丁香狠狠爱| 久热超碰91| 人人摸人人| 久久这里有| 亚洲激情综合五月婷婷啪啪| 色综合色欲综合天天免费| 婷婷开心深爱五月天| PORNY九色9l自拍视频成人| www.99热这里精品| 婷婷五月天首页激情| 7777国产盗摄农村女人| 亚洲精品无码99热| 无码激情AAAAA片-区区| 婷婷伊人綜合中文字幕| 六月丁丁香| 色色色综合网| 五月天婷婷久久| 97人人射| 99视频内射三四| 久久婷婷网| 成人网站免费在线播放| 强伦轩人妻一区二区电影| 99热精品在线在线| 五月天色综合| 色色色在线观看| 色五月激情综合| 九热免费视频| 色色色婷婷五月天| 日本99视频| www夜夜| 99精品无码| 亚洲精品视频在线| 亚洲乱码日产精品BD| 黄急一级视频| 国内精品免费一区二区2009| 丁香花五月天婷婷成人社区| 日韩有码一区| 色一情一乱一乱一区9| 激情久久丁香| 色色色干| 日日操夜夜操狠狠操| 五月天无码视屏播放| 久久这里只有精品16| 欧美色爱五月天| 精品久久人妻| 日本91在线| 99热亚洲| 欧美婷婷丁香社区在线播放| 好大好粗嗯啊-一级黄色大片免费观看-成人AV| 日本人妻操| 丁香五月中文字幕| 色五月婷婷狠狠撸| 色婷婷六月天在线| 亚洲免费观看高清完整版AV线| 伊人激情啪啪| 色综合天天| 91久女| www.久久婷婷| aⅤ79成人片| 丁香婷婷六月天| 亚城区在线| 爆乳熟妇一区二区三区爆乳照片| www.天天日| 婷婷综合婷婷| 六月激情婷婷综合| 亚洲 综合中文| 欧美激情2025| 色五月色图| 激情开心五月天| 中文字幕在线视频播放| 大香蕉天堂| 五月婷婷播| 五月天另类视频| 26uuu欧美日本| 狠狠婷婷色| 99精品人人| 色国产五月| 九九综合| 韩国真做片在线观看| av在线观看网址| 99久热| 丁香五月激情鲁| Av九九| 日韩成人影片网站| www、丁香五月天| 99re久热只有精品6在线直播| 精品久久久人妻| 超碰99热| 91性人人| 日本va欧美va精品发布视频 | 五月丁香六月色婷婷综合五月天| 俺去啦综合网| 五月天成人小说| 丁香亭亭激情四射| 丁香五月 综合| 99re6久热只有精品6在线直播| 99在线观看| 在线资源av-超碰中文在线-成人AV| 在线五月色播| 大香蕉网站,大香蕉综合| 五月婷三级片| 亚洲国产婷婷色五月| 婷婷深爱五月| 婷婷99狠狠躁天天久久久九九九| 另类A片| 人人爱人人摸人人澡| 久操操| 日本色图综合| 噜噜色婷婷| 亚洲日韩乱码一区二区三区四区| 五月丁香婷婷色色色| 婷婷五月天激情网站| 操91| 99精品自拍| 五月亭亭性| 九九亚洲天堂| 丁香五月天偷拍| 五月丁香亭亭操逼| 激情骚五月| 日韩久久这里只有精品| 亚洲精品色| BT综合在线视频观看| 人人摸人人摸| 九日日夜夜69| 五月丁激情| 久久伊人大香蕉| 五月婷婷99热| 国产成人高清| 日韩无码91| 婷婷五月丁香伊人| 丁香8月手机综合| 99这里只有免费的小视频在线观看| 97人人操人人爽| 大香蕉五月| 99热精品中文字幕| 亚洲一二三网| 天天干天天色天天干| 成人做爰A片免费看视频| 亚洲人妻av| 黄色片区子| 97极品在线| 色五月婷婷五月天| 国产婷婷久久| 天天干 夜夜爽| wwww.9免费视频| 综合六月激情婷婷| 丁香88AV五月婷婷| 天天色天天舔天天爱天天爽| 亚洲中文字幕在线观看| 亚洲视频丁香网va| 成人免费120分钟啪啪| 天天在线天天综合网色| 天天天天干| 久久五月丁香| 国产乱码久久| 91久热| 婷婷欧美色| 婷婷色网| 五月天免费色| 无码激情AAAAA片-区区| 色丁香综合影院| 在线观看免费人成视频无码| 人人色AV| 丁香六月成人| 丁香五月开心婷婷| 狠狠色综合网站久久久久| 色色色色热| 丁香密臀AV激情网| www99精品| 五月天丁香网| 五月天婷婷色| 婷婷丁香五| 一二线视频 另类| 大地资源色婷婷视频在线| 99操网站| 五月丁香综合| 97在线碰| 综合激情五月天| 天天撸夜夜爽| 九 九九九AV| 成人免费高清在线播放| 九九99免费视频| 亚洲精品亚洲人成人网| 狠狠操.COM| 97超碰色| 日本天堂免费99| 色婷婷丁香五月天| 性做爰A片免费视频A片直播| 色色色国产| 91操在线观看| 在线99热| 91啪级电影| 97成人视频| 五月婷激情影院| 嫩草AV久久伊人妇女超级A| 99国产精品白浆在线观看免费| 夜夜撸日日骑| 踪合专区啪啪| 国产毛片精品一区二区色欲黄A片| 99热大片| 婷婷伊人75| 狼人久草| 伊人五月天婷婷| 婷婷激情人妻| 开心五月天激情网| 丁香五月天的网址。| 另类激情四射| 国产精品美女久久久久AV超清| 日日夜夜小色哥| 涩综合网| 亚洲精品V天堂中文字幕| 色综合色色色| 色色日韩| 91欧美日韩| 99爱在线视频| 天天色色天天| 这里只有精品免费在线视频| 久久视9精| 丁香五月天网站| 大伊久久| 久久婷婷色色| 黄色网址五月婷婷| 日韩无码专区| 丁香网五月网| 大香蕉久艹| 婷婷九月久久| 538在线精品| 亚洲成人在线五月天| 久99视频在线观看| 日本美女97在线视频| 婷婷久久五月丁香| 婷婷综合六月| 色热久资源| 99久免费视频| 欧美性猛交AAAA片黑人 | 欧美 日韩 成人| 色婷婷五月天激情综合| 欧美人人操| 无码人妻一区二区一牛影视| 五月婷婷六月丁香| 丁香久久久| 色五月天成人在线| www.婷婷五月| 综合久久伊人| 国产亚洲精品久久久久久久久动漫 | 色婷大香蕉| 丁香五月婷婷五月| 激情五月婷| 人人噜天天上| 另类婷婷丁香| 超碰人人操在线| 国产亚洲成AV人片在线| 日本熟妇乱妇熟色A片蜜桃| 午夜天堂啪啪| 五日激情综合| 五月婷婷狠狠干| 九九99视频精品| 色玖玖综合网| 五月婷婷色啪| www.夜夜爱.com| 国产日产亚系列精品版优势| 99热在线只有精品| 久久久99免费视频| 亚洲视频99| 丁香婷婷伊人| 五月天播播综合| 青青热视频| 久婷| 色噜噜五月天| www.色色com| 99热热热天天人人人超超碰| 国产日韩欧美| 五月天婷婷在线视频| 二色AV| 五月婷激情影院| 色五月综合| 日本五月婷| 激情五月深爱婷婷| 色丁香五月综合网| 午夜不卡成人一区二区| 欧美精品久久久久久视频观看| 热99国产精品| 六月丁香久久| 成人在线精品| 九九色综合网| 2017狠狠干| 97碰在线免费观看| 欧洲区自拍| 婷五月天| 精品动漫 无码av| 超碰无码老师| 热99.com婷婷| 9|在线观看视频| 丁香六月激情国产| 97日日碰碰| 92久操视频| 久久sp免费视频| 欧美日韩五月婷婷| 婷婷综合影院| 91成人电影| 超碰九九热| 97久久视频| 激情五月开心五月在线视频| 久久婷婷五月国产色综合激情| 激情网站五月| 激情深爱综合| 五月情综合| 亚洲国产成人裸舞| 中文字幕色色| 丁香婷婷成人网站| 99色五月| 色99视频| 五月综合视频| 99精品国产在热久久| 性爱激情五月| 五月综合激情图片| 99精品97| 久久九九爽| 婷婷五月天视| 五月婷婷co.m| 五月婷婷开心综合| www.狠狠| 亚洲精品视频在线| 天天天天操| 亚洲精品一二三| 超碰在线94| 综合久久综合久久| 亚洲精品五十一区| 婷婷五月天色综合| 996er热| 丁香五月婷婷啪| 性一交一乱一交A片久久四色| 中文字幕 中文字幕明步| 五六月婷婷久久| 五月天社区婷婷丁香社区| 色九九综合| 激情久久五月网| 激情五月开心五月丁香五月| AV操逼网| 免费无码毛片一区二区A片| 97色精品视频| 国产超碰人人| 99精品视频免费在线播放| 亚洲色a| 狠狠干五月天| 97热这里只有精品| 五月丁香婷婷欧美色图视频五月丁香777电影| 9久热在线视频| 成人短视频在线| 色国产五月| 四月婷婷五月丁香| 人妻中文在线| 9久9久9久女女女九九九一九| 激情丁香九九五月综合网| 凹凸探花电影| 欧美这里只有精品| 天天日天天舔| 婷婷综合伊人| 玖玖在线视频福利| 26uuu另类亚洲欧美日本一| 中文字幕av久久爽一区| 超碰亚洲欧美| 日韩99视频| 五月婷婷co.m| 五月丁香久| 色五月丁香com| 91色操| 五月婷婷干| 大香蕉99热| 日韩限制级大尺度黑料泄密大尺度视频一区二区在线观看 | 五月天综合区| 26.uuu丁香五月婷婷| 中文字幕丰满孑伦无码专区| 啪啪六月婷婷| 欧洲综合视频在线观看。欧洲,亚洲综合食品在线观看。 | 伊人婷婷五月天av| 丁香五月婷婷丫| 91色色色18| 级人人91| 人人爱干人人爱草| 色五月婷婷五月天| 综合色、色综合| 在线你懂的亚洲欧| 凹凸操Av| 香蕉综合网| 五月天丁香成人社| 都市激情小说婷婷| 久/久精品99看9| 久操激情| 激情五月天色婷婷| 天天射影院| 久久久91| 久久这里都是精品| 色综啪啪网| 狠色狠色狠狠色综合网| 丁香 久久| 国产人人操| 激情图片婷婷| 激情伊人五月天| 久热伊人9| 99er久久| 激情综合五月天| 97人人超| 狠狠色大香蕉| 人妻Av在线| 人人干AV| 日日夜夜狠狠| 综合激情五月丁香| 99热综合色图| 五月婷婷丁香网| 五月婷婷激情综合视频| 中文字幕在线免费看线人| 91蜜桃婷婷狠狠久久综合9色| 啪啪色区| 丁香五月婷婷亚洲激情四射| 人人操人人爱丁香五月| 女人高潮内射99精品| 大香蕉啪啪啪| 五月久久婷婷丁香| 超碰97久久| 五月天伊人网| 色色97丁香婷婷五月天| 99热99这里有免费的精品| 国外亚洲成AV人片在线观看| 色婷婷综合久色AV五色最新| 色99网| 日韩在线视频中文字幕| 99er免费在线观看| 亭亭丁香久久五月| 五月婷婷片| 久久久久久激情| 91超级碰在线| 国产精品色婷婷久久久精品| 久久久久丁香婷婷五月天| 狠狠色综合久久久久| 99愛国产| 婷婷五月丁香99| 天天综合网亚洲综合网| 五月婷A V在线| 成年人99热| 99热10在线高清播放| 天天干天天操天天爱| 久久ri精品| 九九久久视频| 4399在线观看免费高清毛片| 丁香五月六月婷婷殴美综合| 玖玖九九9999在线观看视频精品| 久久这里只有国产视频| 9999热免费视频视频| 丁香六月伊人| 五月婷婷9| 天天操天天插| 婷婷丁香花五月天| 99热9| 丁香5月激情网| 久久99久久99久久99人受| 五月天婷五月天综合网在线观| 熟女人妻一区二区三区免费看| 天天干天天 亚洲| 91久女| 久久久性爱视频| 任你擦免费视频| 丁香五月色色| 婷婷丁香六月五月天| 极品少妇XXXX精品少妇偷拍| 九九免费在线视频| 五六月婷婷久久| 99综合视频| 天天肏视频| av大香蕉| 婷婷五月天激情五月天网站| 2005天天干天天1| 站长推荐无码播放| 99 热| 久久一级AV| 99色色色色| 色六月婷婷| 色婷婷影视| 99er6热在线观看精品6| www九月婷婷| 玖玖爱综合网| 亚洲色情免费网| 人妻免费网站| 色呦呦美女| 天天日日人| 婷婷五月综合丁香久久| 欧美色色色色色色| 久久机热这里只有精品免费视频| 色综合久久之分久久| 丁香五月婷婷在线| 色噜噜狠狠色综合AV兰草影视| 人妻熟人中文字幕一区二区| 淑女丝袜bi操逼123| av在线资源| 久久综合婷婷激情| 久9视频免费播放| 中文字幕丰满乱孑伦无码专区 | 97久久久| 国产成人综合电影| 九九99热| 五月丁香六月日逼| 色婷婷综合在线| 99热这里都是精品| 日韩99精品| 深爱五月月天| 激情五月天色色色|