欧美成人午夜精品久久久,国产?V天堂一区二区三区,欧美精品va在线观看,亚洲一区二区三区免费在线观看,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
返回資訊列表
深爱激情69热| 四虎婷婷五月天| 99自拍视频网站| 91狠狠综合久久| 国内一级片| 色99热| 99'无码| 超热久碰.com| 狠狠干狠狠操狠狠爱| 成人午夜无码视频| 色欲天天综合| 9l视频自拍九色9l视频在线观看| 六月丁香成人网| 色色五月丁香婷婷| 五月婷婷色啪| 色九月国产| 99精品成人无码A片观看金桔| 亚洲精品永久久久久久| 婷婷五月天偷拍| 日日干五月天婷婷| 丁香5月激情网| 综合99视频| 九九在线热九九在线热99热| 色婷婷基地 | 亚洲综合在线播放| 五月丁香在线| 色欧美影院| 激情色视频| 色婷婷中文字母五月丁香| 激情久久综合网| 99爱在线视频| 婷婷五月天成人| 婷香五月| 婷婷五月天福利| 超碰人人99| 五月婷婷网五月在线| 亚洲成人网无码| 大香蕉Av在线| 久久婷婷国产| 91欧美| 久碰婷婷视频| 欧美99热| wWw色五月| 九九五月天| 综合网狠狠| www。五月,com| 天天做天天爱天天爽| 97人人干人人操| 99精品在线观看视频| 色播五月婷婷| 91丨九色丨东北熟女| 日本丁香五月| 色色色综合网| www.99热国产| 婷婷九月在线| 亚洲色五月| 婷婷色色网| 91久久久久久久| 婷婷九九| 丁香五月久久综合| 99热网址| 国产69久久久欧美黑人A片| 99热最新| 九九久99免费视频| 婷婷涩涩五月天| 色情丁香五月婷婷精品| 婷婷丁香六月影视| 亚洲色激情| 婷婷伊人五月天| 婷婷五月伦理网站| www狠狠| 五月天激情国产综合婷婷婷| 超碰妻人人| 午夜激情久久| 一级黄色影片| 另类激情五月天| 婷婷激情五月综合| 色五月婷婷综合| 99热只有| 一本久道综合99| 婷婷五月综合在线| 日日插日日干| 99色在线视频| 色婷婷久久视屏| 1024手机在线观看看片_日韩精品| 操久久网| 99久久玖玖| 丁香色色网| 婷婷久久五月天| 99久久精品免费精品国产_国产精品久久久久久_国产在线|日韩_久久国产精品电影 | 久久五月天合网| 爱草视频在线| 大香蕉啪啪网| 五月天激情日色在线| A片一曲| 成人精品一区二区三区四区五区 | 蜜臀久久99精品久久久久久酒店| 99热大香蕉| 婷婷5月天av| 丁香九月婷婷色| 九九视屏| 神马久久五月天| 新97人人上人人| 99热精这里只有精品| 夜夜操天天干| 2025超碰| 五月婷婷视频啪啪美女| 综合婷婷| 9999热在线免费观看| 狠狠色五月激情| 丁香五月成人社区| 五月丁香久久综合91| 六月丁香色色色| hd五月婷婷在线| 思思热在线观看| 久久久激情| 激情视频91| 思思re视频在线| 五月丁香综合啪啪| 六月婷婷综合久久| 九九视屏| 九月av| 日日狠夜夜狠| 超碰日韩成人| 丁香激情六月天婷婷| 综激情网| 超碰九九热| 色色色com| 丰满少妇猛烈A片免费看观看 | 碰97 久| 99精品热视频| 97色婷婷| eeuss人妻| 99性爱视频| 淫视馆av三区| 狠狠激情五月天| 风流少妇A片一区二区蜜桃| 丁香五月激情网| 热99re| 中文字幕在线日亚洲9| 久久免费丁香| 99re免费精品视频| av大香蕉| 三年高清大片免费观看国语| 婷婷综合在线观看视频| 91人妻九色大屁股| 色五月婷婷亚洲最大| 婷婷97狠狠成人网站| 婷婷五月天最新综合你懂的| 天天狠天天叉| 思思99热在线| 久久精品99国产精品日本| 超碰在线视屏| 婷婷色色五月| 天天爽夜夜爽夜夜爽精| 婷婷六月色| 操操操www.com| 久热人妻| 六月丁香婷婷视频综合在线观看| 丁香五月伊人| 日本五月丁香| 日本综合99| 午夜九九电影| 久久久91精品| www.婷婷五月| 丁香婷婷六月天| 婷婷五月综合在线| 成人婷婷五月天| 亚洲V国产V欧美V久久久久久| 这里只有精品在线视频精品| 青柠影视免费高清电视剧| 99精品热视频只有精品10| 色色色色五月天| 亚洲成人一区| 大地9中文在线观看免费高清| 婷婷六月色丁香视频在线观看| 人妻久久久| 26uuu欧美日韩| 婷婷久久综合| 激情婷婷五月色| 午夜精品久久久久久久爽| 婷婷色香六月综合激情| 色综合av超碰| 99久久9| 午夜大香蕉| 偷拍五月丁香| 五月婷婷婷丁香播| 99色综合网| 第九色区av天堂| 成年人99热| 无码一区二区三区四区五区91c| 婷婷综合激情| 玖玖伦理电影| 伊人丁香五月婷婷潮吹| 色色COm| www,色婷婷| 婷婷金品综合视频| 日日噜狠狠色| 丁香色情五月综合激情| 日韩精品在线观看9| 天天久| 国产精品99久久久久久猫咪| 丁香婷婷老熟女综合网| VA色婷婷| 日日爽日日| 99九九热在线观看| 丁香五月激情图片婷婷| 久久色婷婷| 丁香 婷婷五月| 婷婷五月综合中文字幕| 99在线观看| 天天做天天爱天天做| 久大香蕉| 久久密臀婷婷| Aaa久久| www.五月天色色.com| 婷婷五月天成人娱乐| 色99久草在线| 婷婷色婷婷| 丁香五月Av| 无码se| 九一娱乐在线观看视频| 欧美日韩中文国产一区发布| 五月天色区| 五月丁香六月婷婷国产视频| 亚洲激情99| av在线不卡播放| 天天插天天爽| 婷婷五月天激情网| 91肏| 免费观看的av| 五月婷婷网站| 久久这里有精品视频| 色欲人妻综合aaaaaaaa网| 日本综合九九| 河北真实伦对白精彩脏话| 五月丁香六月成人| 91色在线 | 日韩| 伊人六月无码视频| 蜜臀A∨在线水帘洞| 国产综合婷婷| 黄久久久| 色欲天天综合| 久久色五月| 婷婷五月天综合久久日美女| 精品九九久久| 韩日AV片| 亚洲A片成人无码久久精品青桔| 丁香五月日韩| 五月婷婷AV| 婷婷六月激情| 五月丁香婷婷导航视频| 丁香婷婷影院| 操碰99| 天天干天天色综合| 播播网色播播| 99久久精品国产色欲| 淑女丝袜bi操逼123| 伊人五月网| 六月丁香啪啪| 婷婷六月激情啪啪| 婷婷成人小说综合| 99热这里只有精品最新网址| 丁香五月电影| 99精品热| 任你操精品免费| 五月婷啪| 五月婷婷啪啪| 中文字幕无线久必| 婷婷久久女人| 免费国产视频| 久久综合丁香五月| 五丁香激情综合| 91九色精品熟女内射| 激情婷婷久久| 一区二区中文字幕| 亚洲精品中文字幕成人片| 天天干天天操天天爽| 五月深爱网| 人人妻久久妻| 99精品自拍| 超碰成人免费| 69超碰在线| 91人人爽人人操| 亚洲av无码影院| 久久综合五月| 色婷婷五月天av在线| 中文字幕在线观看视频www| 99热伊人| 婷婷五月六月激情| 六月婷婷色色色| 玖玖爱资源站| 91操人| 久久婷婷五月天激情新地址| 丁香婷婷综合激情五月色| 国产综合久久久777777| 99热免费网站| 六月丁香综合| 九九久久综合| 色五月噜噜| 激情久久久久久久久久| 欧美激情五月天在线观看| 久久99久久99精品免视看婷婷| 五月丁香婷婷激激激综合网色播| 伊人碰碰碰| 91久久久久久久久18| 成人在线二区| 99综合久久| 天天拍久久| 人人摸人人澡人人| 密着浓厚中出乚交尾GvG935| 丁香久久五月婷综合| 婷婷五月天色| 色五月婷婷亚洲| 婷婷综合网| 色.五月综合网| 熟女啪啪视频| www.丁香黄色五月天人与| xx人人xx| 97操资源婷婷| 婷婷六月婷婷| 亚洲热视频在线| 婷婷丁香无码专区| 激情综合婷婷五月| 99精品热| 伊人免费视频9| 国产精品成人AV在线| 极品人妻videosss人妻| 婷婷五月丁香五月| 久久人人九九| 狠狠干综合| 少妇大叫太大太粗太爽了A片| 9有码中文| 激情综合婷婷| www.夜夜| 亚洲色综合| 日本狠狠爽| 婷婷丁香97| 激情婷婷五月综合| 性色人人爽| 国产精品爽爽久久久久久| 亚洲成av人影院| 色99热| 玖玖资源站蜜臀| 婷婷操逼| 美女天天艹人人爽| 五月婷婷之综合激情| 黑人熟妇一区二区三区| 六月丁香网| 婷婷五月丁香青青草在线| 大香蕉久久| 色五婷婷在线视频| 色婷婷综合在线| 狠狠久综合| 婷婷激情综合网| 激情久久久| 久久99精品久久久久久噜噜| 九九综舍久久| 婷婷的色色五月天| 五月婷婷丁香啪啪| 97热精品| 久久婷婷五月天蜜桃| 欧洲第一久色| 伊人喵咪a V| 五月婷久久| 九九性视频| 久久婷婷综合网| 伊人五月婷婷| 中文字幕成| 中国女人做爰A片| 婷婷五月天av| 深夜男女福利刺激影院一区| 久婷婷婷| 玖玖热视频| 激情黄色小说色五月| 色噜噜五月天| 五月丁香狠狠爱| 人人干99| 五月天日日操夜夜操| 九九黄色网| 六月99天天婷婷激情综合| 婷婷 伊人 久久| 99丁香五月婷婷在线| 色综合激情| 亚洲激情综| 色色五月丁香婷婷| 丁香婷婷五月天色综合| 国产古装妇女野外A片| 中文无码精品一区二区三区| 九九热内射| 美女丁香五婷婷| 六月婷婷综合久久| 久久精品一区二区三区四区| 夜夜爽天操| 久久99久久久| 六月丁香五月婷婷| 亚洲婷婷激情888精品久| 久777| 婷婷五月天在线一区| 丁香密臀AV激情网| 91中文在线| 69激情小说| 91精品综合久久久久久五月天| 国产精品爽爽久久久久久| 色婷婷丁香| 北京熟妇搡BBBB搡BBBB| 极品人妻VideOssS人妻| Av性爱网站| 91碰操| 色婷婷网| 丁香五月天BBw| 人操91在线| 91九色丨国产丨爆乳| 狠狠艹狠狠艹| 91无码高清| 超碰在线人妻| 五月丁香六月情| 久久伊人大香蕉| 黄色视频网站在线播放| 久久网日本| 婷婷综合五月激情| 99视频久久| 久草婷婷网| 天天综合五月| 丁香六月激情网C0W| 久婷久婷| 国产探花一片区| 在线婷婷| 99er精品视频| www,五月丁,com| 18久久| 日本天天色| 婷婷草| 五月久久噜噜| 丁香五月欧美激情| 婷婷五月娱乐在线| 狠狠色婷| 国产精产国品一二三在观看| 99热综合网| 久久五月天婷婷| 欧美天天综合网站上去吧| 色婷亚洲| 亚洲中字AV电影在线网站| 深爱激情五月天| 天天干-天天日| 婷婷五月激情四月综合 | 青吴乐视频| 亚洲网站观看视频| 狠狠色综合777| 日本高清综合网五月丁香| 五月激情偷拍| 国产精品VA在线| 亚洲色欲AAAAAA| 人人干人人干骚美女| 99久久精品国产色欲| 日韩限制级大尺度黑料泄密大尺度视频一区二区在线观看 | 色情五月丁香婷婷网| 67194中文在线| 色五月欧美| 思思热视频在线观看| 亚洲国产99| 99在线精品视频免费观看20| 色五月天视频| 丁香五月激情视频在线| 日日撸天天干| 午夜九九电影| 丁香五月色欲| 五月婷婷在线免费| 婷婷丁香六月| www.99日本| 婷婷五月免费视频| 欧美色频| 婷婷久久亚洲| 天天爽天天爽| 欧美顶级少妇做爰HD| 日本三级日本三级99| 色情综合网| 久久久97| 97五月天| 色吊丝中文字幕| 96色婷婷| 大香蕉啪啪| 久久久久久久97| 91蜜桃婷婷狠狠久久综合9色| 99热99色| 狠狠色性| 亚洲综合另类| 五月综合无码| 亚洲乱码日产精品BD| 无码激情AAAAA片-区区| www五月婷婷88导航| 天堂在线观看视频| 91N 一起草| 天天艹| 成人网页在线观看| 在线不卡视频| xxx日本东京热| 天天狠狠色综合| 天天爽日日爽夜夜爽| www999日韩精品| 婷婷五月情| 嫩草AV久久伊人妇女超级A| 9久热精品在线视频| 超碰免费观看| 婷婷的99视频网站| 婷婷五月丁香成人| 激情四射五月天| 337p大胆噜噜噜噜噜91Av| 狠狠一日| 久久九区| 开心婷婷五月中文字幕组| 婷色五月天| 国产毛片欧美毛片久久久| 91久久人人操| 日本女va| 99热在线播放| 国产肥白大熟妇BBBB视频| 91fuliwang| 五月激情婷婷图片基地| 夜夜干夜夜操| 国产AV国片偷人妻麻豆| 国产亚洲色婷婷久久99精品91 www.riverspirits.org www.hnnun.com www.changh | 99色免费观看全部| 26UUU欧美激情一区二区| 少妇AB又爽又紧无码网站| 亚洲黄色av网站| 丁香五月1页| 五月婷婷激情综合视频| 日韩婷婷| WWW99热| 久久久久久久合一狠狠做深爱 | 色综合色五月| 伊人婷婷激情| 97人妻碰碰碰碰碰久久久久久| 9久久狠狠的| 六月婷欧美| 五月天激情国产综合AV| 亚洲第一综合| 91久久五月天| 五月婷婷五月天激情网| 国产特级毛片AAAAAAA高清| 亚洲精品视频电影| 99热在线成人网站| 丁香av网| 第四色婷婷色五月| 久热免费视频| 狠狠色婷婷7777久| 91成人看片| 亚洲av综合在线| 综合网激情五月天| 另类天堂| 激情五月婷黄版| 六月丁香婷婷综合狠狠爱夜夜爱| www.91热久久| 日夜夜天天| 天天干天天爽| 亚洲成色综合网站免费观看| 五月天另类视频| 免费看成人747474九号视频在线观看| 午夜五月天| 97久久久久久久久久久| 婷婷六月天亚州| 免费视频WWW在线观看网站| 成人五月天丁香| 99精品综合视频| 丁香五月天日韩无码| 丁香五月综合图片在线观看| 激情五月婷婷| 天天爱天天做天天爽| 无码99| 这里只有精品免费在线视频| 九九热只有精品| 日韩综合天堂| 九九热在线精品| www.久久爱| AAA久久| 夜夜资源站| 狠狠色大香蕉| 综合久久影院| www.色婷婷.com| 丁香五月婷婷深爱综合激情 | 欧美综合123区| www.婷婷,com| www.91九色| 99日在线视频| 青草五月天| 成人天天爽| 久久9视频欧美| 九九精品网站| 五月婷婷综合在线亚洲视频| 这里只有精品网| 激情五月婷婷啪啪| 碰碰91| 色狠狠五月天| 久操欧美在线观看97| 欧美久久婷婷| 久9精品| 饮料下药迷倒漂亮女同事强干| 久久黄A片| 亚洲精品V天堂中文字幕| 五月天色导航| 伊人综合婷婷| 五月婷婷激情综合| 亚洲热久久| 激情文学第四色婷婷丁香五月| 91色五月| 思思热久久久在线| 婷婷久久99| 五月激情视频| 婷婷五月天激情五月天深爱五月天| 九色地址91视频| 激情综合无码| 色色色.COM| 97人人做| 一级黄在线| 五月婷婷六月激情| 国产欧美婷婷五月| 日本色99| 亚洲成人丁香花| 亚洲视频二区| 人人人操97| 综合99综合久久久久久久| 亚洲乱码日产精品BD| 久婷五月| 婷婷五月天激情亚洲小说| 日韩激情网站| 极品少妇高潮啪啪AV无码| 五月婷婷m| 伊人玖玖精品| 五月做爱| 无码99| 六月婷婷五月天| 婷婷五月天中文字幕.| 色婷婷女优有码五月亭| 久久性爱视频| 久色网址| 天天做好综合色| 凹凸7777操操操| 国产婷婷五月天| 九九成人电影婷婷| 激情五月婷婷五月| 激情综合五月天| 婷婷五月天激情综合深爱| 91久久久久久久| 久久九⑨| 国产女18毛片多18精品| 久99视频| 婷婷香蕉| 色播丁香| www.黄色片-久久成人国产精品在线播放-999AV| 色伊人婷婷| 青青操日本摸摸看看| 亚洲超碰在线| 久9热视频| 久久少妇视频| 狠狠草综合网| 97韩国久久电影院| 五月丁香六月婷婷不卡免费无码 | 九色婷婷| 九月婷婷激情| 另类激情综合| 久久金品黃色| 99综合免费视频| 狠狠色综合网站| 久久er九九| 五月婷婷深深的爱| 99热偷拍| 大香蕉手机视频| 五月天丁香网| 六月婷婷激情| 91精品久久久久| 久久3p| 色情婷婷。| 青青草Avb在线| 婷婷五月六月| 青青草网武则天| 六月婷婷操逼| 婷婷六月久久| 久久精品99久久久久久久久| 啪精品| 男人的天堂97| 超碰电影在线播放| 91精品婷婷国产综合久久| 天花AV无码| 久久新地此| 精品网站:999WWW| www.久久爱.com| 色六月婷婷| 91久久久久久久91| 五月婷在线| 婷婷六月激情小说网| 国产avapp 网| 国产成人网| 五月婷婷深深爱爱| 亚洲五月婷天天操| 天天做天天爱天天爽综合网| 五月婷婷综合网| 色五月婷婷在线| 操碰91| 亚洲色久| 丁香熟女乱| 综合另类视频| 色五月综合婷婷久久综合婷婷久久综合婷婷久久综合婷婷久久 | 五月丁香亚洲婷婷| 婷婷五月婷婷| 久久综合婷婷| 亚洲视频一区| 五月丁香婷婷欧美| 99五月婷| 久久99精品久久只有精品| 日韩人妻无码专区| 日韩综合成人| 色播五月综合网| 色五月婷婷久久| 狠狠88综合久久久久噜噜噜| 人人人va亚洲视频在线| 婷婷五月精品中文字幕| 色婷婷电影网| 日日操无码| 丁香五月婷婷亚洲人| 中文字幕日韩无码制服诱或| 亚州色色色| 午夜色婷婷| 丁香五月激情综合| 狠狠狠狠青草| 激情五月伊人婷婷| 五月精品免费XXX| 丁香五月欧美激情| 色爽干| 久久久WWW| 99精品无码网站| 碰碰女| 亚洲欧洲中文日韩久久AV乱码| 色丁香五月婷婷综合久久| 激情五月婷婷免费视频| 丁香久久| 无码少妇高潮喷水A片免费 | 26uuu四色| 色爱亚洲| 国产一区二区三区影院| 天堂色婷婷| 色婷婷综合网站| 79精品视频在线观看,| yirenjiqingshiping| 色婷婷XXXXX| 五月天基地| 六月激情网| 婷婷伊人75| 只有久久精品免费| 狠狠干五月天| 丁香五月区| 亚洲精品国产精品乱码视99| 青青草免费公开视频| av国产精品偷| 婷婷五月天激情小说| 亚洲无AV在线中文字幕| 五月婷婷久久综合| 成功精品影院| 欧美婷婷综合网| 国色天香伊人狠狠色| 亚洲男女激情| 久9视频| 五月丁香在线观看| 婷婷九九色| 天天摸夜夜爽天天做| 亚洲色视频| 丁香五月影| 开心五月婷婷激情网| 五月综合视频| 玖玖伦理电影| 丁香婷婷影院| 日韩成人免费电影| 51XX午夜影福利| 色99在线观看| 91久久九久久九久久九久久九久久| 九九精品9| 天堂婷婷丁香六月网| 99在线精品免费视频| 天天狠天天狠| 五月天婷婷色| 久久精品色| 色色综合网络| 婷婷五月综合色中文字幕| 激情美女五月天激情在线| 日本猛少妇色XXXXX猛叫| 九九热视频精品2| 五月天色色网站| 色五月xxx| 天天插天天插| 99区视频| 99九九这里有免费视频| 色婷婷丁香五月色综合网| 超碰亚洲欧美| 欧美激情凹凸丁香网| 日韩无码亚欧无码| 激情图片五月天| 狠狠久久婷婷| aa久久| 秋霞黄色一级久久| 久久99综合| 9999热精品在线免费播放| 在线播放成人网站| 深爱丁香激情| 免费V片在线| 亚洲激情久久| 久草大| 噼里啪啦完整版中文在线观看| 色狠狠六月| 伊人在线另类| 天天日天天插| 再綫Av免费視品| 黄色热99| 色综合色综合色综合色综合| 亚洲天99| 精品一二三区久久AAA片| 亭亭五月天成人| www.无码com| 能看的av网站| 亚州欧美国产久精国产99综合视频| 色婷婷成人做爰A片免费看网站| 五月天久久婷婷| av九九| 91婷婷搞| 超碰在线人妻| 99人妻碰碰碰久久久久视| 久草热在线视频| 五月婷婷五月天| 婷婷激情五月| Va另类视频| www.99热精品| 日本色婷婷| 色五月婷婷内射| 大香蕉人妻| 综合 激情 婷婷| 久久久99免费视频| 天天做天天干天天综合网| 99.N在线视频| 国产69久久久欧美黑人A片| 99久久大片| AV中文在线| 亚洲无码激情| 99视频内射三四| 婷婷射丁香| 国产综合婷婷| 天堂在线观看视频| 成人AV在线网站| 久噜久噜| 激情另类综合| 色婷婷AⅤ| www.色婷婷.com| 婷婷五月色播| 亚洲人成人五月天| 亚洲精品va| 超碰无码318604| 少妇AB又爽又紧无码网站| 國語久久婷| av性爱在线| 天天狠天天狠| 午夜九九九九九九九九九九九九九| 熟妇内谢69XXXXXA片| 五月婷啪啪| 操婷婷基地| 男人操女人高潮91视频| 97在线精品| 夜夜干天天操| 五月婷六月丁香| 96人人操人人操人人| 久久激情天堂| 1024欧美看片| 日韩成人精品中文字幕电影| 五月丁香综合啪啪| 九九性爱网| 中文字幕色色| 五月婷婷网站| 六月五月久久丁香| 97成人丁香婷婷| 欧美日韩91| 婷婷五月激情的图片| 婷婷在线中文字幕| 国产真人做爰视频免费| 亚洲成人网站在线观看| 婷婷久久五月| 婷婷射综合| 91成人看片| 五月婷婷丁香婷婷| 激情綜合W W W,激情五月天| 五月开心啪啪| 色播丁香婷婷五月激情| 激情五月综亚网| 婷丁五月| 久99综合婷婷| 另类五月激情| 成人精品亚洲性爱| 九九在线这里只有精品视频| 五月天自拍视频| 久久草婷婷丁香网站| www久久五月com| 色五月婷色彩免播放器| 中文激情网| 色五月婷婷狠狠撸| 色婷婷综合久色AV五色最新| 丁香五月在线人妻| 激情五月丁香色婷婷| 影音先锋女人av鲁色资源网小说免费| 美日韩成人| 色情丁香五月婷婷精品| 成人在线网| 99热只有精品综合| site:901-07.com| 最新精品视频99| 亚洲人人干| 小视频一区| 天天搞天天爽| 伊人久久大香线蕉av一区| 成人五月天丁香婷| 激情综合五月婷婷| 激情色播| 九九热精品视频在线观看| 国产SUV精品一区二区6| 97婷婷五月丁香| 91天堂网综合| 久久五月激情| 色五月天综合| 久久99免费视频| 色婷婷五月天在线观看| 丁香婷婷激情网站| 人妻AV在线观看| 五月丁香久久| 伊久大香蕉| 狠狠干综合网| 丁香五月天欧洲在线| 少妇婷婷五月天| 可以看的av| 色色色综合网| 国产黄色在线| 91丨九色丨丰满人妖| a网站免费观看| 五月天欧美 另类小说| 天天操夜夜夜拍拍拍| 色色亚洲五月天| www久久99| 国产成人精品一区二三区熟女在线| 婷婷六月丁综合| 婷综合| 五月丁香婷婷激情在线| 9月色婷婷| 国产精品电影| 色综合色综合色综合| 97碰在线免费观看| 六月婷婷网| 五月天婷婷综合网| 激情五月天丁香| 91久久九| 婷婷爱综合| 亚洲精品婷婷| 天天综合精品| 国产.亚洲.欧洲视频在线| 丁香六月色香蕉视频| 免费观看的婷婷五月视频在线| 日本色色色| 亚洲免费电影2| 99re99热| 激情99热| 90色免费视频| 五月综合久久| 天天干天天拍| 亚洲字幕AV一区二区三区四区 | 欧洲亚洲免费视频区| 久久久免费精彩视频| 另类天堂| 国产精品日日躁夜夜躁| 综合激情深爱| 色99视频| 婷婷五月色惰| 婷婷五月天首页| 99热在线精品观看| 激情淫乱男女| 婷激情五月| 成人精品在线| 中文字幕婷婷在线| 思思热国产| 色欲久久综合| 伊人久久大香线蕉av一区| 婷婷五月天高清无码| 熟女人妻一区二区三区免费看| 2020日日干| 久久99网| 亚洲99热| 婷婷激情六月综合| 亚洲精品色| 91热久久| 日本色色网站| 色婷婷AⅤ| 五月婷婷狠狠干| 国产精品久久欧美久久一区| 五月色在线| 日韩超碰在线| 免费成人网在线观看| 99热6色| 七七婷婷综合| 五月丁香婷婷AV天堂| 日韩一级片| 91狠狠色丁香婷婷综合久久| a久久免费视频| 99天堂在线观看免费视频| 色婷婷婷综合五月天| www.五月婷婷| 伊人网碰碰| 色婷五月天| 色情成人五月天| 久99视频在线观看| 综合网啪| 狼人狠狠操| 一月婷婷色色| 大香蕉久久婷婷| 日韩成人中文字幕| 影音先锋一区| 激情五月综合网最新| 激情综合久久| 婷婷六月激情| 99re这里只有精品视频6| 日本99热| 欧美婷婷五月无砖| 五月婷婷丁香日韩在线| 午夜无码精品色综合久久| 日韩在线观看网址| 九九色综合视频| 婷婷五月丁香综合桃花色网| 色婷婷小说| 9人人操人人看| 99自拍视频网站| 激情q青青草在线婷婷| 一起草av| 天天 青草 丝袜制服 在线| 五月丁香婷婷激情图片| 色婷婷五月视频| 一区三区视频有限公司| 大香网伊人久久综合| 天天艹天天综合网| 九九九九毛片| 青青草深爱激情网| 五月婷婷丁香91| 天天干,夜夜爽| 亚洲成人一区| 成人短视频在线观看| 五月婷婷六月奇米网丁香| 99热黄| 婷婷五月天情色| 九九综合久久丁香婷婷,开心激情综合网| 天天天天操| 97色色色色色| 夜夜资源站| 九九伊人网| 婷婷五月中文在线视频| 噜噜操操| 五月天综合网| 天天操天天干天天日| 久久久999精品| 婷婷五月丁香第四色超碰在线| 亚洲热热视频| 久久ww| 婷婷五月另类网站| 成人网站免费在线播放| 天天爱天天日| 99五月婷| 欧美99热| 天天干天天爽| 美女丁香五月天| 99久热在线精品99re6热| 午夜大香蕉| 五月丁香婷婷综合网色欲| 五月婷综合| 丁香午夜天| 久久九九在线视频| 一起草av| 五月丁香六月婷婷激情四射| 五月婷婷激情久久| 色丁香影院| 欧洲永久精品| 91丨九色|PRNY熟妇| 丁香五月性爱| 久机视频这只有精品| 99热思思在线观看| 在线看黄色| 色婷婷综合久久| 五月丁香六月婷| 色五月婷婷五月丁香五月| 天天婷婷综合| 五月综合丁| 日韩AC在线免费观看| 99热精品在线观看| 欧美人妻一区二区| www.色婷婷。com| 激情文学第四色婷婷丁香五月| 日本熟妇乱妇熟色A片蜜桃| 色99欧洲色19| 亚洲色激婷| 九九黄色网| 婷婷久久色| 日韩成人无码| 99热99色| 色色五月天婷婷丁香| 华人在线免费| 丁香六月视频| 色综合久久久久| 99A级片| 欧美日本99| 碰超亚洲| 国产成人精品亚洲线观看| 99热免费观看| 五月丁香六月婷婷久久肏| 婷婷五亚洲| 9999色色色色| 色久在| 中文久久久人妻| 婷婷丁香五另类网站| 九九热91| 综合九九久久| 99婷婷综合| 久久综合站| 欧美69久成人做爰视频| 麻豆WWWCOM内射软件| 99热一区| 日本三级黄色大片| 男女99免费视频| www.99日本| 大香蕉久久久| 激情综合五月婷婷丁香| 噜噜狠狠色综无码久久合欧美| 天天日天天干天天插天天射| 一本久久亚洲五月婷婷| 久久人妻爱爱| 色之综合网| 婷婷六月色丁香视频在线观看| 国产激情久久| 全网最新网黄大秀直播高清,主播国产录屏在线| 大香蕉五月天婷婷丁香91| 五月丁香久久丝袜啪啪| 成人AV中文字幕| 色婷婷四色| 婷婷激情人妻| 91九色国产熟女| 九色视频91| 99久视频| 日日噜人人人做人| 五月天另类综合网| 天天干天天日日| 人妻VideOssS人妻高清| 欧美激情综合色丁香婷婷五月天| 五月伊人婷婷| 五月婷婷官网色| 丁香五月六月婷婷殴美综合| 深情五月天| rr天天操| 色噜噜狠狠色综合日日| 狠狠搞狠狠操| 久久99久久99精品,久国产,久久精品免费,99久在线,久久久久国产精品免费网站,9 | 色婷婷婷婷五月天| 涩 五月 婷婷 狠狠| 秋霞少妇AV网站| 天天爽天天| 精品一二三区久久AAA片| 久777| 2021日韩无码| 久久作爱| www.yw尤物| 婷婷五月天直播| 色色丁香激情五月| ss99热| 色五月天成人| 婷婷五月天在线一区| 99久久婷婷| 精品国产乱码久久久久夜深人妻| 91大操| 另类视屏| 亚洲精99| 五月婷婷久草在线视频综合| 亚洲旡码| 久久久人妻| 婷婷色片| 9er热在线精品视频| 99热国产在线| 91色操| 九九色逼| 婷色综合| 91人人操人人| 亚洲另类久久| 激情性爱五月| 在线18av | 欧美伊人9| 婷婷丁香五月激情图片| 婷婷深爱五月| 少妇性按摩无码中文A片| 欧美黄色一级| 激情网站五月| 久久人妻高清中文| 综合久久99| 播丁香五月婷婷欧美| 大香蕉综合| 天天日天天日天天搞| 99热超碰| 91九色 熟| 91操熟女| 五月丁香基地| 婷婷五月综合久久中文字幕| 亚洲无AV在线中文字幕| 色欧美一级| 99久久精| 天天操天天曰| AA片在线观看视频在线播放| 9l视频自拍九色9l视频自拍九色9l社区 | 亚洲乱码日产精品BD| 五月丁香婷婷色啪| 亚洲AV成人在线| 天天操,夜夜骑| 久热9| 丁香五月婷婷色偷偷| 亚洲99视频| 久久99综合| 成人在线视频一区| 色综合色欲综合天天免费| 久久婷婷精品| 久99久视频精选| 激情综合五月激情XXXX| 五月丁香婷婷导航视频| 大鸡巴伊人网| 五月丁香久久网| 丁香色婷婷五月天| 51精品国自产在线| 欧美久久婷婷| 四色五月婷婷| 亚洲人成网站999综合| 五月婷婷久久开心网| 天天骑天天操| 久艹大香蕉| 婷婷五月天无码| 六月婷综合| 丁香五月婷婷激情123| 思思re99视频在线观看| aa久久| 九九热精品| 色五月97| 亚洲天码视频www蛋播视频| 琪琪色五月婷婷老师| WWW、日本色丁香co m| 婷婷五月丁香六月| 人妻久热| 丁香五月天黄色片| 伊人综合色干| 欧美色频| 伊人热婷婷| 丁香五月婷婷香| 色色97丁香婷婷五月天| 五月丁香婷婷成人综合网| 风流少妇A片一区二区蜜桃 | 婷婷色成人| 国产在线网址1| 亚洲狠狠狠色婷婷综合激情久久久| 久热这里| 激情小说婷婷小说| 26uuu欧美| 九九热再线九九视频免费在线观看 | 久久九九99| 日日干天天爽| 天天上天天爽| 成熟妇人A片免费看网站|