免费国产精品自在自线-91精品国产色综合久久久浪潮-99热久久免费频精品-国产精品国模在线观看-久久亚洲国产精品成人?V秋霞-久久国产一级A片免费播放-亚洲国产欧洲综合97久久-久久国产白嫩美女呻吟高潮

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
返回資訊列表
婷婷在线视频| 91蜜桃婷婷狠狠久久综合9色| www.99免费视频| 99人这里只有精品| 色五月丁香com| 婷色五月天| 色婷婷88| 伊人综合网站| 婷婷激情五月综合| 综合久久综合久久| 国产亚洲精品久久久久久郑州| 丁香五月天婷婷久久| 性做久久久久久久免费看| 日本五月视频| 97香蕉碰碰人妻国产欧美| 99热99色| 五月综合亚洲色| 婷婷久久久| 九九婷婷五月天影视| 538在线精品| 99色在线视频| 丁香六月天婷婷色| 五月婷婷熟女| 男人的天堂99| 99视频自拍| 色五月婷婷内射| 99色热视频| wwwss在线观看| 婷婷五月丁香香蕉| 五月婷婷久久网| 26.uuu丁香五月婷婷| 99热8| 五月色俺婷婷| 情欲综合网| 日韩久久日| 九九色之九九色88| 东北熟女高潮99综合99| 欧美69色| 超碰操日| 99无码精品| 超碰99热精品| 色播五月网| 婷婷成人综合| 婷婷色九月| 日本 色综合| 真实的国产乱XXXX在线91| 天天拍天天操| 久久激情网| 九九综合久久| 激情纯色婷婷五月天在线不卡视频| 亚洲视频在线网| 丁香六月欧美| 99ri在线观看视频| 99九九玖玖| 操嫩逼电影| 思思热思在线精品视频| 色婷婷综合久久久久| 五月丁香综合网| yw国产AV| 色图亚洲91| 国产免费一区二区在线A片视频| 久久久久久丁香五月| 大香蕉久久久久| 久久久99久久| 色婷婷丁香五月| 丁香五月欧美午夜视频| 夜夜骑夜夜操| 色五月婷婷丁香五月| www.五月.com| 五月香婷婷| 婷婷五月天网| 亚洲五月天婷婷| 五月丁香天堂网| 日韩在线婷婷五月天综合| .操區COm| 激情婷婷丁香色五月综合| 做爱夜夜干天天操| 色婷婷激情五月天| 久久色五月天| 丁香五月婷婷网| 亚洲综合色婷婷| 天天天天天日| 91传媒无码人妻精| 淫荡家庭AV| 色999;丁香五月| 翔田千里 50岁 无码| www.99久久久| 五月花综合视频| 99热亚洲| 色综合99| 啪啪综合| 久久人妻高清中文| 日本99视频| 99爱在线| w婷婷五月婷婷w| 99热e| 天天操天天干天天日| 99热这里只有精品3| 97色热| 啪啪综合| 婷婷色基地在线看| 婷婷丁香五月麻豆| 99爱视频| 日本在线观看99| 碰碰人人漕| 五月丁香综合影院| 激情5月舔| 开心五月婷婷99| 成人五月天丁香| 欧美人与性动交CCOO| www.色婷婷| 涩丁香91| 噜一噜免费视频| 99色看这里只有精品| 色婷婷视频综合| www.国产色| 青草视频在线播放| 成人午夜免费电影| 成人AV在线网站| 六月综合婷婷开心伊人| 日本色色视频| 丁香五月亚洲综合| 大香蕉综合在线| 99国产精品久久久久久久久久久 | 久久99精品久久久久久三级| 久热精彩视频98| 爱爱色五月天| 天天干天天干天天干天天干天天干| 婷婷色五月在线视频| 中文字幕成人| 开心深爱五月天| 九九碰九九爱97超| 久激情网| 这里只有精品视频免费在线观看| 综合激情五月天| 思99热精品久久只有精品| 五月丁香婷婷在线| 99自拍网| 精品久久久人妻| 另类国产区| 天天综合亚洲综合网天天αⅴ| 激情网婷婷婷| 精品九九网| 日韩狠狠色婷婷| 丁香五月婷婷大香蕉| 久久久久久9热不雅视频| 日本五月婷婷久久久六月丁香| 99色精品| 五月天婷婷丁香人人操91| 99热99在线| 五月丁香网站| 色射影院| 97久久视频| 精品99这里有| 久久99久久99精品,久国产,久久精品免费,99久在线,久久久久国产精品免费网站,9 | 欧美熟女乱又伦| 亚洲成av人影院| 精品无码av丁香五月激情| 五月天激情图片| 丁香六月啪啪啪| 久久综合干| 婷婷欧美综合| 午夜色婷婷| 综合狠狠伊人| 激情性爱五月天网页| 青青草日本亚洲| 610018岁成人视频| 天天操天天插| 日日夜夜狠狠婷婷色| 天天射影院| 丁香五月狠狠在线观看| 狠狠色综合久久久久| 人人摸人人干人人做| 国产干逼片| 色婷婷成人| 一起草aV| 99热免费| 丁香五月天激情免费在线观看AV777| 伊人大香久久| 五月丁香六月激情欧美综合| 久久综合天天综合| 激情文学综合婷婷五月天丁香花| 欧美乱码国产一级A片| 99热在线精品播放| 成人无码髙潮喷水A片| 无码网| 国产成人精品一区二三区熟女在线| 激情宗合哪里能看| 9热久久在线| 欧美日韩999| 日日骑夜夜撸| 五月天久久久| 天天爱天天做天天| 婷婷五月丁香激情色情| 欧美激情中文字幕| 婷婷五月天亚洲综合网| 天天做天天爱天天玩| 99视频在线播放大全| 99视频在线| 性天天中文网| 中文人妻主播久久| 操操国产| 日本情色一区二区| 亚洲日韩乱码一区二区三区四区| 国产成人综合在线| 六月丁香五月天| 99久久婷婷| 色五月丁香五| 五月丁香啪啪网| 激情5月婷婷| 五月婷色| 婷婷99中文字幕| 激情98色婷婷五| www.婷婷.com| 六月丁香婷婷在线波多| 99久99热| 99色色爰| 久久免费9| 91se精品国产| 亚洲在线操| 热思思| 五月丁了香蕉综合| 久九色| 五月丁香激情综合网官网| 影视av久久久噜噜噜噜噜三级| 丁香六月色情| 国产中文亚洲欧美日韩性交| 色伊人婷婷| 久久婷五月影院| 天天日天天摸| 婷婷精品在线| 婷婷综合在线视频| 婷婷WWW久久| 伊人无码高清| 99ER热精品视频| 丁香五月激情啪啪| 婷婷丁香色无五月| 99re这里| 婷婷综合精品视频97| 天天拍夜夜爽日日| 97深爱伊人综合| 大香蕉综合网| 精热在线综合网| 色玖玖综合网| 五月份婷婷| 婷婷导航| 九九热这里有精品23| 色色色五月婷| 91碰在线| 婷婷99| 综合色五月天| WWW,激情五月天,COM| 日本69日人视频| 九色91视频| 玖玖婷婷综合| 五月天狠狠网站| 五月天综合激情网| AV堂狠狠干| 97干在线视频| 第二色AⅤ| 九九色中文| 色五月琪琪| 色婷婷五月影视| 国产精品久久久久久久久久| 激情小说 五月天| 男人天堂亚洲综合| 26uuu亚洲欧美| 9久热这里只有精品| 五月天深爱激情网| 五月婷婷激情中文字幕| 五月色亚洲| www.超碰在线| AV亚洲在线| 亚洲成人丁香花| 变态另类色图| 久九色| 欧美婷婷六月丁香综合色连续高潮抽搐| www色色com| 久久综合这里只有精品1| 91超级碰碰碰| 色婷婷狠狠久久综合五月| 这里只有精品在线免费视频| www.精品99| 可以直接看的av| 国产精产国品一二三在观看| 超碰丁香五月| 五月婷婷综合热| www.狠狠色.com| 狠狠色婷婷777| 五月天另类激情在线| 91偷拍视频| 五月婷婷激情综合| 天天操天天插天天射| 日本久久精品18| 亚洲丁香婷婷| 天天色月| 婷婷六月啪啪| 色五月婷婷久久| 伊人热在线大香蕉| 狠狠丁香| 99精在线| 欧美日韩欧美| www狠狠| 婷婷五月天激情AV影院| 黄色五月婷婷| 996re热精品视频| 婷婷五月丁香综合| 五月丁香六月婷婷欧美综合| 五月丁香久久| 91视频精品99| 草逼大片| 丁香五月激动深爱欧美| 五月激情丁香五月| 激情五月天网站| 中国丰满熟女A片免费观| 久久综合网桃花| 九热免费视频| 婷婷五月丁香伊人| 久久在线视频免费观看| 久久精品4| 婷婷五月天视频在线观看| 九九亚洲| 亚洲综合在线网站| 99re视频精品| 第四色在线观看| 日韩欧美成人片| 婷婷六月天激情影院| 激情婷婷综合网| 色色色欧美| 深爱五月婷| 色色五月婷婷| 梁铮版《蜘蛛女侠》在线| 国产精品国产| 中文字幕网站在线观看| 欧美日韩AAAA| 99热亚洲只有色| 无码se| 五月婷婷之婷婷| 逼特逼在线免费播放| 九月色婷婷综合亚洲| 很很操96| 久久丁香五月婷婷| 狠狠夜夜五月丁香| 色婷婷五月综合| 久操婷婷| 夜夜谢天天干| 日本久久高清| 天天操天天曰天天射| 日日夜夜狠狠婷婷色| 五月停停色色丁香| 综合激情五月丁香| 色综合伊人网| 操操操操操操婷婷五月天| 五月天伊人综合| 四川操逼站| 婷婷五月天成人综合网| 久久综合综合综合| 青草五月天| 无码一区二区三区四区五区91c| 五月天自拍网| 97人人操人人插| 五月天婷婷久久综合| 狠狠综合网| 婷婷爱综合| 涩五月婷婷| 国产99美少妇| 九九热123| 五月婷婷综合色啪首页| 五月婷婷啪啪| 伊人五月网| 亚洲乱码日产精品BD| 深爱五月中文字幕| 日韩成人电影Av| 99这里有精品视频| 超碰在线看| 激情五月丁香五月| 丁香五月久久综合| 五月丁香婷婷啪啪综合| 91欧美日韩综合| 久久免费精品小视频| 色婷视频| 久久亚洲A| 色欲久久综合| 五月激情网综合| 五月婷婷综合色啪首页| 99人人干人人| 97人人干| 大伊久久| 91丨九色丨熟女| 久青草影院| 欧美黑人巨大猛烈cuckold| AA片在线观看视频在线播放| 国产婷婷五月色情综合| 超碰99热| 国内9l视频自拍老熟女九色| 综合AV在线| 精品久久人妻热| 色99最新网址| 色婷婷久久综合中文久久一本| 99热久久这里只有精品| 久久久欧美精品sm网站| 久久9热好| 五月激情小说| 丁香婷婷偷拍| 成人网站免费在线播放| 天天碰夜夜操| 91色色色| 激情综合网五月激情| 丁香五月激情网| 激情五月天色色网| 五月综合视频| WWW.开心五月天.COM| 丁香六月婷| 丁香五月婷婷基地| 中文字幕婷婷| 99re热视频这里只精品5| 五月天婷婷久久视频| 久久这里99| 亚洲在线操| 五月婷婷影视| 婷婷五月综合在线| 亚洲熟女色| 日本激情五月| 天天插天天插天天日| 欧亚中文A V| 伊人综合网站| 夜夜爽天天爽| 久久新地址| 婷婷色成人| 日本美女天天日天天爽| 成人 在线 日韩| 五月天激情亚洲| AV在线观看网站| 91热久88| 久久综合久色欧美综合狠狠| 九热视频| www.五月丁香| 欧美日韩成人在线| www.91操| 九九精品热播| 亚洲人人操| 日本操逼九九九九58日本操逼| 国产xxxxx在线观看| 色热久| 9色免费网| 丁香婷婷欧美综合| 黄色中文字目| 黄急一级视频| www五月婷婷88导航| 狠狠爱综合网| 日本欧美成人片AAAA| 五月天丁香网| 99色性爰网络| 丁香五月伊人| 欧美交换配乱吟粗大25P| 深爱激情五月婷婷| 久久久中文| 天天插天天插天天插天天插| 精品人妻一区| 亚洲妇女熟BBW| 91日本在线观看| 五月婷婷激情网| 色玖玖| 99久久婷婷国产综合精品草原| 天天干天天爽| 丁香激情久久| 婷婷精品| 婷婷五月天A V| 激情五月婷婷老师| 亚洲国产网址| 久久网婷婷| 国产精品黑丝| 一二区成人电影| 综合色色综合| 色色色国产| 九九色影视| www.婷婷| 久热这里有精品视频| 视频免费精品免费精品免费精品免费精品免费精品免费精品免费99 | 9久久婷婷国产综合精品性色| 五月天激情网图片| 综合色色色| 天天爽天天爽| #NAME?| 久久艹网| 天天肏视频| 婷五月丁香俺| 婷婷播播五月天| 这里只有精品免费视频在线观看| 天天日天天插| 天天干天天做| 涩丁香91| 97色碰| 五月天玖玖狠狠色色| WWW五月| 六月丁香av| 亚洲丁香花色| 五月婷婷精品| 噜一噜免费视频| 婷婷色Av| 色婷婷久久综合| 欧亚成人A片一区二区| 操碰99在线视频观看| 99性色| 综合AV在线| 午夜天堂一区人妻| 啪啪操操| 激情婷婷丁香色五月综合| 99这里有精品视频视频| 开心五月网 | 九九黄色网| 久久久区区一久久久久久| 五月婷婷69| 开心五月深爱五月| 日韩xx在线| 天天激情综合| 精品爆操| 99久久喉9| 婷色五月天| 久久婷婷五月综合色播| 91色五月| 九九精品碰| 久热这里只有精品3| 五月天成人小说网| 嫩草AV久久伊人妇女超级A| 久久蜜臀婷婷| 激情五月婷婷啪啪| 五月天另类视频| 超级碰碰碰久久网站视频| 激情婷婷| 91九色中文| 黄色网址五月婷婷| 琪琪秋霞| 亚洲成人在线播放| 五月天婷婷伊人| 色性日本| 国产乱妇无乱码大黄AA片| 狠狠色丁香婷婷久久综合| 天天撸夜夜爽| 免费AV播放| www.婷婷,com| 婷婷性色| 丁香五月激情啪啪啪| 色五月婷婷丁香国产在线| 日韩久热| 国产亚洲99久久| 99视频这里只有久久精品| 欧美人妻一区二区| 天堂色婷婷| 99精色| 婷婷五月在线影院| 五五月五月| 五月激情站| 色婷婷免费观看| 五月激情天| 男人的天堂av俄罗斯热| 日日操,夜夜撸| 极品人妻VIDEOSSS人妻| 欧洲激情五月天婷婷| 99色在线视频| 人妻久久久久| 欧美激情VA永久在线播放| 香蕉综合在线| 99A片| WWW久久久| 九九aV| www.婷婷六月天| 亚洲激情综| 国产成人一区二区三区在线观看| 久久激情综合| 丁香五月狠狠在线观看| 伊人五月丁香| 免费成片在线观看| 丁香六月婷婷久久综合| 99爱99操| 亚洲情欲| 五月天欧美 另类小说| 无码AV免费精品一区二区三区| 26uuu淫色| 亚洲中文字幕在线观看| 婷婷色丁香五月| AV片在线观看| 五月开心久久| 超碰在线人妻| 99年操人人爽| 五月天天天色| 伊人网大香| 激情五月婷婷五月| 青草久久五月婷伊人| 精品香蕉99久久久久网站| 被男人添B超爽视频| 天天人人综合| 丁香五月婷婷激情97| 婷婷干五月综合在线播放| 久久五月天丁香花| 婷婷精品免费久久| 五月丁香成人版| 色五月噜噜| 五月天播播中文字幕| 亚洲久久日| 国产激情综合五月久久| 激情网婷婷婷| 婷婷久久亚洲| 成人国产欧美大片一区| 五月丁香六月| 丁香婷婷偷拍| www.99精品视频| 亚州操人在线视频| 婷婷综合六月| 色五月天丁香| 综合久久五| 婷婷色在线播放| 五月天婷婷日日爱| 久久人五月| 婷婷五月天亚洲| 亚洲婷婷激情888精品久| 久久婷婷丁香五月宗合| 疯狂做受XXXX高潮A片| 日本色婷婷| 在线va网站| 色色色1网址| 91操人视频| 国产熟女日日骚五月丁香爱| 激情综合五月天| 五月丁香久久久| 另类专区在线观看| 婷婷网五月天| 日韩综合大黄| 婷婷五月天成人在线视频| 人人摸人人干| 五月丁香婷婷综合| AV在线免费网站| 天天综合网亚洲综合网| 热99这里只是精品| 五月丁香五月丁香五月丁香五月丁香91| www.婷婷五月天.com| 久久人妻伦理| 先锋资源996| 久久99婷婷| 97超级免费无码| 日韩精品AV一区二区三区| aaa久久| 天堂AV在线看| 色亚洲婷婷| www99热| 999久久久国产精品| 五月婷婷啪啪啪啪| 熟妇无码乱子成人精品| 午夜色婷婷| 婷婷五月天视频亚洲| 天天拍夜夜爽| 五月丁香六月激情网| 一级片sese片.COM| 日本久久高清| 玖玖在线视| 激情五月天开心总和网| 色情五月天首页| 99视频色在线观看| 色婷婷在线播放| 99亚洲精美视频在线观看| www九月婷婷| 免费91久久精品| 99燥99日| 一二线视频 另类| 亚洲乱码日产精品BD在线观看 | 亚洲色另类| 五月香婷婷| AV在线观看网站| 超碰猛烈的性猛交| 991国产精选视频在线播放下载| 五月婷在线播放| 99久久久国产精品免费蜜乳tv| 天天婷婷操| 狠狠干在线视频| 六月五月久久丁香| 色综合日日| 99久久大片| 丁香六月婷婷一区二区三区| 五月婷婷六月丁香激情| 99热这里只有精品在线观看| 色五月成人| 97超碰在线免费观看| 五月丁香啪啪综合| 色综合丁香| 这里只有精品2| WWW,五月| 人妻熟人中文字幕一区二区| 99在线视频操999| avh片在线观看| 久久天堂色| 综合www色| 97影院一级片| renrencaoni| 精品色色网| va亚洲中文在线| 可以免费观看的AV| 99免费在线| 青草视频在线播放| 99热在线爱| 99色热视频| 婷婷基地成人五月天| 激情综合网,婷婷五月天| 色丁香影院| 台湾无码A片一区二区| 99免费在线| 亚洲中文字幕AV在线| 98热精品| a色色色色色| 六月丁香婷婷尤物| 国产精品日日躁夜夜躁| 99在线免费观看| 人人操9| 亚洲AV综合网| 婷婷丁香五月六月激情| 午夜成人网站在线观看| 内射人妻视频国内| 好色婷婷| 五月六月激情婷婷| 天天操比比| 高清无码中文字幕aVDV| 婷婷在线激情| 色色综合成人网| 婷婷丁香五月天欧美| 五月丁香六月婷婷欧美综合| 夜夜操狠狠操| 99热在线网站| 激情五月天婷婷图| 天天日天天干天天天| 色婷五月天| 亚洲爱婷婷| 99区视频| 成人 在线 日韩| 丰滿爆乳一区二区三区| 这里只有精品偷拍| 99热这里只有精品5| 99热这里只有精| 五月丁香六月婷婷成人| 欧美久久婷婷| 97人人干| 中美日韩成人在线| 日日撸夜夜操| 4438亚洲欧美| 久久综合丁香五月| 激情綜合網址| 婷婷五月开心六月AV| 开心五月激情| 97人人干人人操| 色婷婷色和| 色婷婷六月综合| 亚洲婷婷免费| 91色在线/日韩| 五月天啪啪啪| 色婷大香蕉| 国产精品-第3页-91JQ就要激情网91JQ5.JQJQ926.XYZ | 婷婷丁香激情| 性做久久久久久久免费看| 国产成人av在线| 开心婷婷五月| 日韩av高清| 天天舔天天插天天干| 婷婷五月天丁香| 五月天亚洲图片婷婷| 日韩在线一级| 色色色色色色色色色色色色色五月天| 五月天五月婷五月激情网| 91欧美| 看黄的网站18禁| 色色五月丁香| 91在线日| 伊人干综合| 亚洲天99| 五月停停999| 亚洲色色五月天| 婷婷五月天视频亚洲| 五月婷婷亚洲综合在线| 综合色色色色色色| 丁香六月婷婷久久亚洲天堂| 婷婷五月天综合小说网| 婷婷香蕉香| 欧洲第一久色| 婷婷综合在线视频| 天天爽天天操| 色色色婷婷五月| 九九精品综合| 狠狠搞五月天| 开心五月深爱五月| 狠色狠色狠色狠色狠色网| 国产精品涩涩涩视频网站| 日本天天综合| 国产小精品| 婷婷丁香五月天小说| 午夜天天精品视频| 亚洲亚洲永久无码777777| 好大好粗嗯啊-一级黄色大片免费观看-成人AV | 1024在线视频| 日韩视频女神99| 96丁香六月婷婷蜜桃综合久久| 大香av| 26UUU欧美| 99热九九这里只有精品10| 农村熟妇高潮精品A片| 美女主播野战视步页| 影音先锋AV男人站| 9热在线观看| 久操婷婷| 五月天电影网| 激情小说视频图片| 激情六月婷婷| 少妇高潮呻吟A片免费看软件| 另类图片婷婷五月天| 39视频第二区| 第四色激情网| 思思热在线精品视频网站| 大香蕉视频99| 9久视频| 26UUU成人网| 91丁香婷婷综合久久欧美| 久9无码视频| 深爱婷婷基地| 婷婷狠狠青青| 99综合久久| 丁香六月婷婷高清| 久久99久久久| 99操逼| 色综合色色色| 久久er免费视频| 丁香五月停停av| 久操无码| 五月天婷a| 婷婷五月综合社区| 无码成人AAAAA毛片AI换脸| 日日杆天天| 久久黄色免费视频| 日韩无码系列| 伊人色综合网| 亚洲婷婷欧美婷婷| 春色激情第四色| 26.uuu丁香五月婷婷| 亚洲日韩乱码一区二区三区四区| 五月婷婷在线观看黄| 久久6这里只有精品| 婷婷激情综合色五月久久图片| 狼人久草| 丁香五婷婷| 亚洲成人乱码av网站| 91大神操美女| 婷婷情色五月| 五月综合激情婷婷六月色窝| 色呦呦美女| 色播丁香婷婷五月激情| 久久婷婷青草五月天| 色级婷婷| 黄色视频网站在线播放| 综合激情五月丁香| 久久538| 激情二色月| 久久综合婷婷| 蜜臀av粉嫩av懂色av| av操B网站| www.狠狠| 亚洲激情在线| 午夜丁香综合婷婷| 香蕉AV777XXX色综合一区| 千人斩操逼| 91一起操| 任你操精品免费| 超级碰碰碰久久网站| 婷婷99狠狠躁天天久久久九九九| 91久久| 很很色丁香久久停停| 亚洲五月天激情| 九月激情网| 日本一级| 玖玖午夜视频| 啪色综合| 五月婷婷六月丁香玖玖玫瑰91| 99热亚洲精品66| 婷婷色色播五月天| 五月天免费色| 99热综合在线| 超碰碰碰碰| 日本熟妇精品99| 色狠狠999综合| 婷婷色在线视频| 五月婷婷六月综合| 婷婷九九视频| 中日韩狠狠色| 亚洲超级碰| 色一情一乱一乱一区9| 婷婷五月欧美| 婷婷丁香www视频日本韩国| 成人视频免费观看高清完整版在线观看| 中字幕视频在线永久在线观看免费| 九九热精品| 99热思思| 亚洲精品又粗又大又爽A片 | 97在线观视频免费观看| 九九热青草| 色逼综合网| 婷婷丁香五月综合久久| 日本nghangse中文字幕| 97色视频网| 91精产品自偷自偷综合| 久久久.COM| 天天激情5月天亚洲| 性爱AV天堂| 狠狠五月天婷婷| 六月婷婷私欲| 很很干夜夜干| 久9热视频| 成人短视频在线观看| www夜夜操| 中文幕无线码中文字蜜桃| 岛国在线观看91| 狠狠色婷婷综合开心影视| 九九99视频精品| 色色色五月婷| 99re热精品视频国| 天天做综合网色综合| 六月婷婷久久大全| 久久总和99| 色情婷婷五月天| 超碰成人公开| 久热re在线视频| 欧美在线97| 秋霞黄色一级久久| 热99这里只有精品视频| www.99热这里只有精品| 国产免费AV在线| 日韩免费视频| 91九色成人原创视频| 99操中文视频| 玖玖精品资源| 9热在线观看| 九九99精品视频在线观看| W色综合| 婷婷午夜激情| 五月天婷婷色小说| 2017狠狠干| 人妻丰满精品一区二区A片| 日韩久久欧亚| 这里只有精品日韩| 五月天婷婷无码视频| 91精品无码| 牛牛澡牛牛爽| 色婷婷久久综合久色综| 操逼123网| 婷婷五月色激情欧美激情| 五月丁香婷婷色| 色五月婷婷影视| 婷婷欧美色| 亚洲最大激情无码| 777精品久无码人妻蜜桃| 色婷综合| 蜜臀av无码久久久久久久久 | 久婷久婷| 色婷婷五月天在线| 天天操人人干| 五月婷天堂视频| 久久久久婷婷五月热综合| 性爱激情久久| 五月在线婷色| 97色在线观看视频| 色婷婷五月天av在线| 色五月激情视频在线综合| 丁香婷婷婷五月| 激情五月天婷婷| 一二区成人电影| 色婷婷激情视频| 丁香五月六月| 久久亚洲无码| 久久久五月婷婷| 婷婷综合五月| 五月天天堂久久| 99免费视频网| 国外亚洲成AV人片在线观看| 夜夜资源站| 99热这里只有精品3| 人人艹艹艹| 成人精品在线观看| 丁香六月综合激情| 青青操成人福利| 我爱va亚洲va52| 五月婷婷激情网| 最新色色五月天| 97色色色| 99热欲| 狠狠色成人影片| 六月色丁香中文字幕| 人妻少妇色综合| 伊九九三级区| 五月丁香色| 久9精品| 超碰1999| 99精品丰满| 另类综合国产| 嫩草AV久久伊人妇女超级A| 久久婷婷五月综合97色一本| 五月丁香好婷婷A片网| 国产第99页| 老司机伊人| 91碰免费视频| 亚洲成人乱码av网站| 日本精品久久久久中文字幕| 天天狠天天狠| 欧美成人精品A片免费一区99| 美女激情综合| 日本不卡中文字幕| 丁香六月激情| 91精品久久久久久久| 九九这里是免费的视频5| 久久久久激情网| 亚洲黄色精品| 99视频久久| 亚洲国产成人综合| 天天天天天日| 五月天婷婷日日爱| 亚洲第一综合| 玖操97| 天天综合区| 五月婷婷之综合激情| 丁香色影院| 这里有精品| 久99久在线| 人人操av| 五月丁香婷婷激情| 九色视频九色九色91jiuseshipin| 婷婷五月丁香久久| 天天视频精品9| 五月人妻婷婷视频| 国产avapp 网| 怡红院视频| 99热思思在线观看| 九九色婷婷五月天| 吉澤明步Av一區二區| 日韩xx在线| 99久久99久久综合| 亚洲视频丁香网va| 色婷婷丁香女女| 六月综合婷婷开心伊人| 九九久久五月天| 欧美精品XXXXBBBB| 激情婷婷综合五月少妇| 狠干综合| 99自拍视频在线观看| 色9色| 无码一区二区三区四区五区91c| 超碰a女人的天堂| 丁香婷婷综合精品六月初| 影音先锋高清无码资源网| 能直接看的av网站| 九九综合九九| 老美AA片| 色五月综合资源推荐| 色色日韩| 影音先锋AV男人站| 色九月| 狠狠色综合五月| 五月婷婷深深爱| 五月丁香网站| 亚洲精品永久久久久久| 综合亚洲六月婷婷在线| 五月婷婷久久大片| 日本在线视频www色| 五月天婷婷伊人| 天堂在线9| 免费视频WWW在线观看网站| 色婷婷社区| 青草网在线观看| 亚洲天堂制| 色99色| 五月成人网站| oumeisesewang| 大香蕉免费9| 麻豆观看夏晴子| 色欲久久综合| 女人天堂 AV| 色色精品色| 99热 在线播放| 国产亚洲精品久久久久久豆腐| 婷婷五月色天| 五月婷婷co.m| 丁香婷婷九月| 欧美日韩国产成人在线| 超碰狠狠操| 久久久精品AV| 色色COm| 日韩一66精品| 91久久| 99久久.www| 色综合色香蕉网| 操操啪| 亚洲激情综| 婷婷色五月色| 激情综合激情五月| 五月激情丁香五月| 五月 成人 婷婷| 日韩AV在线免费| 成人.在线日韩| 91九色在线| 婷婷五月情| 久草a片| 欧美婷婷成人| 开心五月综合| 情情五月天色| 那里有AV网址| 亚洲网视屏| 久久综合色五月| 微拍92| 婷婷六月天国产综合| 五月天丁香网| 日韩亚洲视频| 亚洲综合视频网| 婷婷天天色| 婷婷色丁香六月| 五月天在线视频尤物视频在线看| 激情婷婷内射| 9.1综合网| 丁香久久| 色色色99| WWW久久久| 五月婷网| 色五月综合激情| 中美月韩免费A片| 五月婷婷成人| 九九 激情 网| 五月久久网| 婷婷综合色网| Www99热| 99热综合色图| 97婷婷丁香| 色婷婷88| 综合久久97| 五月丁香操婷逼| 深夜男女福利刺激影院一区完整| 色色丁香婷婷综合| 色婷婷免费观看| 成人在线精品| 涩五月婷婷| 色婷婷黄色网络| 777色婷婷爱五月| 夜夜爽天天| 91艹人| 丁香激情六月天婷婷| 五月丁香激情六月| 婷婷五月18永久免费视频| 综合久久五月天| 五月丁香六月激情综合| 久久与婷婷| 狠狠干无码| 天天爽天天爽| 五月婷婷久草| 99视频在线看| WWW,五月| 五月天激情综合在线| 久久国产精品乱子伦_靑青草…| 久久99热 这里有精品| 五月婷婷九| 婷婷五月丁香综合激情| 亚洲欧洲午夜成人精品av| 秋霞A V毛片| 九九在线精点品| 日韩成人精品中文字幕电影| 丁香婷婷六月| 操比激情五月综合| 免费九九热| 五月婷婷综合色拍| 婷婷激情五月综合| 色色激情网| 中文字幕无码人妻少妇免费视频 | 永久的网站AAAA| 精品99网站| www.com久久久久久久久久久久久久久久久| 色五月天 丁香| 大香蕉婷婷五月| 久久亚洲婷婷综合色五月| 99热只有国产在线精品| 激情五月天com| 天天操天天操天天操天天操天天操天天操天天操天天操天天操 | 亚洲色9| 天天精品视频在线观看视频| 婷婷成人五月天| 99爱爱| 色综合久久无码| 婷婷色中文字幕| 国产热精品| 丁香五月婷婷五月| 欧美操人| 午夜日韩久久久网站| 高潮毛片遮挡费高一百度| 亭亭五月激情亚洲在线| 激情九九六月激情免费视频| 激情色播| 亚洲XX网| 丁香六月婷婷综合网| 天堂久久婷婷| 精品一二三区久久AAA片| 停停五月色宗合| 99激| 人人97碰| 超碰在线免费观看3 9| 91久久婷婷| 99热在这里只有精品| 九九亚洲| 9久热在线视频精品| 欧美综合在线五月天色婷婷| 人妻久久婷婷| 91碰免费视频| 亚洲五月丁香综合网| 五月丁香六月玩女人| 国产亚洲精品AAAAAAA片 | 婷婷五月天亚洲五码| 亚洲成人在线在线| 天天射影| enecarbon-materials.com污K127封锁请涟系@wip1688 | 91无码色色| 久久五月丁香婷婷| 国产真实乱了老女人视频| 五月天综合| 91精品激情9| 丁香九月激情| 色99网| 无码免费人妻A片AAA毛片西瓜| 色婷婷a| 天天日天天干天天天| 国产美女无遮挡裸体毛片A片 | 91九色国产在线| 国产午夜一区二区三区| 性做久久久久久久免费看| 五月婷婷性爱| 成人在线日韩欧美| 久久日本wwww色| 五六月丁香激情视频| 亚洲综合色婷婷| 99久热在线精品| 蜜臀av粉嫩av懂色av| 一区操| 天天色天天色天天色天天色天天色| 91狠狠色丁香婷婷综合久久精品| 激情99热| 超碰在线综合| 天天艹| 老司机伊人| av一区二区电影免费在线观看| 97色伦另类图片小说视频| 欧美激情综合色综合啪啪五月| 久久 婷婷 五月天| 日韩综合久| 热99在线精品| 婷婷网五月天| www五月天com| 噜噜噜噜综合在线| 婷婷五月欧美| 天堂草在线看www| 黄色av高清| 婷婷噜噜| 毛片九九九九九九| 日日天天干| 第五婷婷伊人丁香| 婷婷色片| 在线观看免费狠狠色丁香香综合| 五月婷婷官网色| 激情熟女网| 婷婷色啪| 超碰免费人妻| 熟女激情五月天|