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

歡迎訪問(wèn) 生活随笔!

生活随笔

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

编程问答

五、【线性表】线性表的链式表示和实现

發(fā)布時(shí)間:2025/3/21 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 五、【线性表】线性表的链式表示和实现 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

線性表的鏈?zhǔn)奖硎竞蛯?shí)現(xiàn)

上節(jié)提到,由于順序表的特點(diǎn)是邏輯關(guān)系上相鄰的兩個(gè)元素在物理位置上也相鄰,因此可以隨機(jī)存取表中任一元素。然而,這也導(dǎo)致了順序表在執(zhí)行插入或刪除操作時(shí),需要移動(dòng)大量元素。本節(jié)來(lái)討論線性表的另一種存儲(chǔ)方式——鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。



1 線性表的鏈?zhǔn)奖硎?/h2>

1.1 單鏈表的定義 Single Linked List

線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的特點(diǎn)是用一組任意的存儲(chǔ)單元存儲(chǔ)線性表的數(shù)據(jù)元素,這些存儲(chǔ)單元可以連續(xù)也可以不連續(xù)。因此,為了表示每個(gè)數(shù)據(jù)元素與其后繼的邏輯關(guān)系,除了存儲(chǔ)其信息本身外,還需要存儲(chǔ)一個(gè)指示其后繼的信息(即其后繼的存儲(chǔ)地址)。這兩部分信息共同構(gòu)成一個(gè)數(shù)據(jù)元素的存儲(chǔ)映像,稱為結(jié)點(diǎn)(Node)。其中,存儲(chǔ)數(shù)據(jù)元素信息的域稱為數(shù)據(jù)域;存儲(chǔ)后繼存儲(chǔ)位置的域稱為指針域,指針域中存儲(chǔ)的信息稱為指針

因?yàn)榇祟愭湵淼拿總€(gè)結(jié)點(diǎn)中只包含一個(gè)指針域,故又稱為單鏈表線性鏈表


1.2 單鏈表的特點(diǎn)

換句話說(shuō),單鏈表中的數(shù)據(jù)元素之間的邏輯關(guān)系是由結(jié)點(diǎn)中的指針指示的,所以邏輯上相鄰的兩個(gè)元素不需要在物理地址上也相鄰,這種存儲(chǔ)結(jié)構(gòu)為非順序映像或鏈?zhǔn)接诚瘛?/p>

在單鏈表中,只要知道前一個(gè)元素,通過(guò)指針就可以找到后一個(gè)元素。但是鏈表中的第一個(gè)數(shù)據(jù)元素就不是很好表達(dá),因此我們需要引入“頭結(jié)點(diǎn)”(如下圖中的 head)。頭結(jié)點(diǎn)的作用是指向表中的第一個(gè)元素結(jié)點(diǎn),頭結(jié)點(diǎn)的數(shù)據(jù)域中可以不存儲(chǔ)任何信息,也可以存儲(chǔ)表長(zhǎng)等描述線性表的附加信息。若線性表為空表,則頭結(jié)點(diǎn)的指針域?yàn)榭铡?br />
頭指針和頭結(jié)點(diǎn)

上圖中的單鏈表在第一個(gè)數(shù)據(jù)結(jié)點(diǎn)(即保存 a1a_1a1? 的結(jié)點(diǎn))之前,還有一個(gè)和普通結(jié)點(diǎn)結(jié)構(gòu)一致的頭結(jié)點(diǎn),包含數(shù)據(jù)域和指針域。還有一些鏈表沒(méi)有完整的頭結(jié)點(diǎn),只有一個(gè)指針指向第一個(gè)數(shù)據(jù)結(jié)點(diǎn),這個(gè)指針被稱為頭指針(可以看成是只包含指針域的頭結(jié)點(diǎn))。

這兩種表示方法沒(méi)有區(qū)別,不管有沒(méi)有頭結(jié)點(diǎn),頭指針都始終指向鏈表的第一個(gè)結(jié)點(diǎn)。但是為了操作方便,一般都加上頭結(jié)點(diǎn)。

總結(jié)

  • 單鏈表不需要大量連續(xù)的存儲(chǔ)單元,可以更好地利用非連續(xù)內(nèi)存。
  • 同時(shí),由于單鏈表除了存儲(chǔ)數(shù)據(jù)元素本身,還存儲(chǔ)了指向下一個(gè)元素的指針,因此也需要浪費(fèi)更多的存儲(chǔ)空間。
  • 由于單鏈表的各元素離散地分布在存儲(chǔ)空間中,所以只能順序存取。如果要獲取第 nnn 個(gè)元素,必須先遍歷前 n?1n-1n?1 個(gè)元素,因此單鏈表的查找操作效率很低。


2 單鏈表的實(shí)現(xiàn)

2.1 結(jié)點(diǎn)的定義

要實(shí)現(xiàn)鏈表,首先要定義結(jié)點(diǎn),按照定義,每一個(gè)結(jié)點(diǎn)包含存儲(chǔ)數(shù)據(jù)的數(shù)據(jù)域和存儲(chǔ)后繼位置的指針域:

/********** 單鏈表的定義 **********/ typedef int elemType; typedef struct LNode{elemType data; // 數(shù)據(jù)域struct LNode *next; // 指針域 } LNode, *LinkedList;

其中我們給 LNode 定義了一個(gè)別名 LinkedList,這個(gè)類型別名是一個(gè)指針類型。實(shí)際上使用 LNode 和 LinkedList 會(huì)得到一樣的效果,但是使用合適的別名可以讓我們更好地理解代碼。當(dāng)我們要使用的變量的功能側(cè)重于標(biāo)識(shí)位置時(shí),就聲明這個(gè)對(duì)象為 LinkedList ;當(dāng)我們要使用的變量是結(jié)點(diǎn)時(shí),就聲明這個(gè)對(duì)象為 LNode 。例如:

// 頭指針,尾指針和臨時(shí)指針 LinkedList head, tail, tmp; // 新結(jié)點(diǎn)n LNode *n;

2.2 主要操作的實(shí)現(xiàn)

2.2.1 頭插法建立單鏈表

單鏈表的生成可以有兩種方式,從頭部插入和從尾部插入。其中頭插法從空表開始,每生成一個(gè)新結(jié)點(diǎn),就插入當(dāng)前鏈表的表頭,即頭結(jié)點(diǎn)之后。

/** Function: 頭插法建立單鏈表* ----------------------------* 從空表開始生成新結(jié)點(diǎn),并將讀取到的數(shù)據(jù)存放到新結(jié)點(diǎn)的數(shù)據(jù)域中,* 然后將新結(jié)點(diǎn)插入到頭結(jié)點(diǎn)之后。*/ LinkedList headInsert(LinkedList &L){ LNode *n; // 先聲明一個(gè)結(jié)點(diǎn)指針n,用來(lái)指向?qū)?lái)生成的新結(jié)點(diǎn)elemType e; // 元素e,用來(lái)接收輸入的元素?cái)?shù)據(jù)L = new LNode; // 創(chuàng)建頭結(jié)點(diǎn)L->next = NULL; // 初始為空鏈表scanf("%d", &e); while(e!=-1){n = new LNode; // 創(chuàng)建新結(jié)點(diǎn)n->data = e; n->next = L->next; // 將新結(jié)點(diǎn)插入頭結(jié)點(diǎn)之后L->next = n; scanf("%d", &e);}return L; // 返回頭結(jié)點(diǎn) }

時(shí)間復(fù)雜度分析
假設(shè)采用頭插法建立單鏈表,一共插入 nnn 個(gè)結(jié)點(diǎn)。對(duì)于單次插入操作來(lái)說(shuō),插入位置固定,因此操作時(shí)間復(fù)雜度和鏈表總長(zhǎng)無(wú)關(guān),時(shí)間復(fù)雜度為 O(1)O(1)O(1) 。總共插入 nnn 個(gè)結(jié)點(diǎn),則總的時(shí)間復(fù)雜度為 O(n)O(n)O(n)


2.2.2 尾插法建立單鏈表

頭插法每一次都是在頭結(jié)點(diǎn)之后插入新結(jié)點(diǎn),因此會(huì)導(dǎo)致元素的輸入順序和在鏈表中的存儲(chǔ)順序相反,有些不符合邏輯,尾插法可解決這一問(wèn)題。尾插法是從空表開始,每一次將新結(jié)點(diǎn)插入到表尾。但是不同于頭結(jié)點(diǎn),沒(méi)有一個(gè)特殊的指針指向表尾,所以我們需要建立一個(gè)尾指針并讓它始終指向表尾。

/** Function: 尾插法建立單鏈表* ----------------------------* 從空表開始生成新結(jié)點(diǎn),并將讀取到的數(shù)據(jù)存放到新結(jié)點(diǎn)的數(shù)據(jù)域中,* 然后將新結(jié)點(diǎn)插入到鏈表的表尾。*/ LinkedList tailInsert(LinkedList &L){LNode *n; // 聲明新的結(jié)點(diǎn)nLinkedList t; // 聲明尾指針telemType e;L = new LNode; // 創(chuàng)建頭結(jié)點(diǎn)L->next = NULL;t = L; // 將指針t指向表尾,此時(shí)鏈表為空,表尾就是頭結(jié)點(diǎn)scanf("%d", &e);while (e!=-1){n = new LNode; // 創(chuàng)建新結(jié)點(diǎn)n->data = e;t->next = n; // 將新結(jié)點(diǎn)n加入鏈表t = n; // 將尾指針指向新結(jié)點(diǎn)nscanf("%d", &e);}t->next = NULL; // 將新的鏈表的尾結(jié)點(diǎn)指針置空return L; }

時(shí)間復(fù)雜度分析
由于我們加入了尾指針,每一次插入操作只需要將新結(jié)點(diǎn)插入尾結(jié)點(diǎn)之后,單次插入操作的時(shí)間復(fù)雜度依然和鏈表總長(zhǎng)度無(wú)關(guān),時(shí)間復(fù)雜度為 O(1)O(1)O(1) 。假設(shè)總共插入 nnn 個(gè)結(jié)點(diǎn),那么總的時(shí)間復(fù)雜度為 O(n)O(n)O(n)


2.2.3 按位查找結(jié)點(diǎn)操作

在單鏈表中查找第 iii 個(gè)結(jié)點(diǎn),若找到則返回該結(jié)點(diǎn),否則返回 NULL

/** Function: 按位查找結(jié)點(diǎn)* ----------------------------* 在單鏈表中從第一個(gè)結(jié)點(diǎn)出發(fā),直到找到第i個(gè)結(jié)點(diǎn)為止,* 否則返回最后一個(gè)結(jié)點(diǎn)指針域NULL。*/LNode *getElem(LinkedList L, int i){if (i<0){ // 檢查序號(hào)值是否合法return NULL;}LinkedList tmp=L; // 創(chuàng)建臨時(shí)指針,并指向頭結(jié)點(diǎn)for (int j=0;j<i;j++){ if (!tmp->next){ // 如果臨時(shí)指針的指針域?yàn)榭?#xff0c; 則代表return NULL; // 臨時(shí)指針已位于表尾且仍未查到,返回NULL}tmp = tmp->next; }return tmp; // 如果for循環(huán)正常退出,// 則代表找到,返回臨時(shí)指針 }

時(shí)間復(fù)雜度分析
基本操作為判斷結(jié)點(diǎn)是否為目標(biāo)結(jié)點(diǎn)。

  • 最優(yōu)情況:目標(biāo)結(jié)點(diǎn)在表頭(即序號(hào)值 i=1i=1i=1),只需要判斷 1 次,因此時(shí)間復(fù)雜度為 O(1)O(1)O(1)
  • 最差情況:目標(biāo)結(jié)點(diǎn)在表尾(即序號(hào)值 i=ni = ni=n),共需要判斷 nnn 次,時(shí)間復(fù)雜度為 O(n)O(n)O(n)
  • 平均情況:令 pip_ipi? 為目標(biāo)元素在第 iii 個(gè)位置上的概率,假設(shè)目標(biāo)元素出現(xiàn)在任意一個(gè)位置上的概率是相等的,那么 pi=1(n)p_i = \frac{1}{(n)}pi?=(n)1?。在長(zhǎng)度為 nnn 的鏈表中查找一個(gè)元素時(shí),所需移動(dòng)元素的平均次數(shù)為
    ∑i=1npi?i=n+12\sum_{i=1}^{n} p_i*i = \frac{n+1}{2} i=1n?pi??i=2n+1?
    所以平均時(shí)間復(fù)雜度為 O(n)O(n)O(n)

2.2.4 按值查找結(jié)點(diǎn)操作

在單鏈表中查找第一個(gè)數(shù)據(jù)域等于給定值 eee 的結(jié)點(diǎn)并返回,若未找到則返回 NULL

/** Function: 按值查找結(jié)點(diǎn)* ----------------------------* 在單鏈表中從第一個(gè)結(jié)點(diǎn)出發(fā),直到找到某個(gè)結(jié)點(diǎn)的數(shù)據(jù)域* 等于目標(biāo)值為止,否則返回返回NULL。*/LNode *locateElem(LinkedList L, elemType e, int &count){LinkedList tmp=L->next; // 創(chuàng)建臨時(shí)指針,指向頭結(jié)點(diǎn)指針域count=1; // 記錄查找次數(shù)while (tmp!=NULL && tmp->data!=e){ // 如果臨時(shí)指針不為空且還未找到目標(biāo)值,tmp = tmp->next; // 則繼續(xù)while循環(huán)count++;}return tmp; }

時(shí)間復(fù)雜度分析
和按位查找一致。


2.2.5 插入結(jié)點(diǎn)操作

在指定位置 iii 插入新結(jié)點(diǎn),如果 iii 的值不合法則返回 NULL

插入結(jié)點(diǎn)的操作可分為幾步:

  • 確認(rèn) iii 的值是否合法,如不合法返回 NULL
  • 找到插入位置的前驅(qū)結(jié)點(diǎn)(即 i?1i-1i?1)。在單鏈表中前驅(qū)結(jié)點(diǎn)記錄了對(duì)后繼結(jié)點(diǎn)的關(guān)系,所以想要對(duì)某個(gè)結(jié)點(diǎn)修改,就必須找到它的前驅(qū)結(jié)點(diǎn)。
  • 在位置 iii 插入新結(jié)點(diǎn)。
  • 因?yàn)榈?1 步和第 2 步恰好是按位查找結(jié)點(diǎn)操作所做的事,所以可以借用按位查找來(lái)實(shí)現(xiàn)插入操作。

    /** Function: 插入操作 * ----------------------------* 在指定位置i插入結(jié)點(diǎn)。* 借用getElem()方法可以將整個(gè)過(guò)程簡(jiǎn)化為三步:* 1. tmp = getElem(L, i-1);* 2. n->next = tmp->next;* 3. tmp->next = n;*/LNode *listInsert(LinkedList &L, elemType e, int i){LinkedList tmp = getElem(L, i-1); // 首先使用按位查找檢測(cè)第i-1個(gè)結(jié)點(diǎn)是否存在,if (tmp==NULL){ // 即檢查插入位置的前驅(qū)結(jié)點(diǎn)是否存在return NULL;}LNode *n = new LNode; // 創(chuàng)建新結(jié)點(diǎn)n->data = e; n->next = tmp->next; // 將新結(jié)點(diǎn)插入第i-1個(gè)結(jié)點(diǎn)之后tmp->next = n;return tmp; }

    時(shí)間復(fù)雜度分析
    根據(jù)前面分析,插入操作共分三步:

  • 確認(rèn) iii 的值是否合法。
  • 找到插入位置的前驅(qū)結(jié)點(diǎn)(即 i?1i-1i?1)。
  • 在位置 iii 插入新結(jié)點(diǎn)。
  • 結(jié)合按位查找可簡(jiǎn)化為:

  • 查找第 i?1i-1i?1 個(gè)結(jié)點(diǎn)。
  • 在位置 iii 插入新結(jié)點(diǎn)。
  • 因?yàn)榘次徊檎也僮鞯臅r(shí)間復(fù)雜度為 O(n)O(n)O(n) ,單次插入操作的復(fù)雜度為 O(1)O(1)O(1) ,所以總的時(shí)間復(fù)雜度為 O(max{O(n),O(1)})=O(n)O(max\{O(n), O(1)\}) = O(n)O(max{O(n),O(1)})=O(n)


    2.2.5 刪除結(jié)點(diǎn)操作

    刪除單鏈表的第 iii 個(gè)結(jié)點(diǎn),如果 iii 的值不合法則返回 NULL 。分析同插入操作一致,重點(diǎn)是找到刪除結(jié)點(diǎn)的前驅(qū)結(jié)點(diǎn)。

    /** Function: 刪除操作* ----------------------------* 刪除在指定位置i的結(jié)點(diǎn)。*/elemType listDelete(LinkedList &L, int i){LinkedList tmp = getElem(L, i-1); // 檢查刪除位置的前驅(qū)結(jié)點(diǎn)是否存在if (tmp==NULL || tmp->next==NULL){ // tmp不存在或者tmp就是最后一個(gè)結(jié)點(diǎn),return -1; // 則不需要執(zhí)行刪除操作,直接返回}LinkedList q = tmp->next; // 指針q指向待刪除結(jié)點(diǎn)elemType e = q->data; // e用來(lái)保存刪除結(jié)點(diǎn)的值tmp->next = q->next; // 斷開q其他結(jié)點(diǎn)在鏈表中連接關(guān)系delete q; // 釋放結(jié)點(diǎn)的存儲(chǔ)空間return e; }

    時(shí)間復(fù)雜度分析
    與插入操作一致。



    3 其他常用操作

    3.1 反轉(zhuǎn)鏈表操作

    將鏈表所有元素的邏輯關(guān)系反轉(zhuǎn)(即前驅(qū)變?yōu)楹罄^)。


    3.1.1 遍歷法實(shí)現(xiàn)反轉(zhuǎn)操作

    基本思路是遍歷原鏈表,將每一個(gè)遍歷的元素指針?lè)崔D(zhuǎn)。但在過(guò)程中可能會(huì)出現(xiàn)鏈表斷裂的問(wèn)題,如下圖所示:

    當(dāng)?shù)诙€(gè)結(jié)點(diǎn)指向改變時(shí),鏈表在第二、三結(jié)點(diǎn)處斷裂,無(wú)法再獲取第三、四結(jié)點(diǎn)。因此,我們需要用一個(gè)變量來(lái)保存當(dāng)前結(jié)點(diǎn)的后繼結(jié)點(diǎn)。一般需要三個(gè)指針,一個(gè)指向當(dāng)前結(jié)點(diǎn)的前驅(qū)結(jié)點(diǎn),定義為 pre ;一個(gè)指向當(dāng)前結(jié)點(diǎn),定義為 cur ;一個(gè)指向當(dāng)前結(jié)點(diǎn)的后繼結(jié)點(diǎn),定義為 next

  • 首先將 pre 和 next 初始化為 null, 將 cur 指向第一個(gè)結(jié)點(diǎn)(頭結(jié)點(diǎn)的下一位)
  • 保存 cur 的下一結(jié)點(diǎn)至 next
  • 將 cur 指針?lè)崔D(zhuǎn),即指向前一位(pre)
  • 將 pre 向后移動(dòng)一位
  • 將 cur 向后移動(dòng)一位
  • 重復(fù) 2-5步,直到 cur = null
  • 最后返回 pre,需要注意這時(shí)的pre并不是頭結(jié)點(diǎn),還需要額外將 L->next 指向 pre,才是一個(gè)完整的反轉(zhuǎn)鏈表
  • /** Function: 反轉(zhuǎn)鏈表操作* ----------------------------* 將鏈表的所有元素邏輯關(guān)系反轉(zhuǎn)。*/LinkedList listReverse(LinkedList &L){// 如果鏈表為空,或是只有一個(gè)元素,則直接返回頭結(jié)點(diǎn)if (L->next==NULL || L->next->next==NULL){return L;}// 第1步LinkedList pre=NULL, next=NULL;LinkedList cur=L->next;while (cur!=NULL){next = cur->next; // 第2步cur->next = pre; // 第3步pre = cur; // 第4步cur = next; // 第5步}L->next = pre; // 將頭結(jié)點(diǎn)指向prereturn L; }

    時(shí)間復(fù)雜度分析
    整個(gè)反轉(zhuǎn)過(guò)程可看成是遍歷 nnn 個(gè)元素以及依次反轉(zhuǎn)單個(gè)元素。反轉(zhuǎn)單個(gè)元素的時(shí)間復(fù)雜度為 O(1)O(1)O(1),遍歷的時(shí)間復(fù)雜度為 O(n)O(n)O(n) ,因此總的時(shí)間復(fù)雜度為 O(n)O(n)O(n)


    3.1.2 遞歸法實(shí)現(xiàn)反轉(zhuǎn)操作

    待補(bǔ)充。


    3.2 合并有序鏈表操作

    將有兩個(gè)有序鏈表合并為一個(gè)有序鏈表。

    基本思路是分別用兩個(gè)指針遍歷兩個(gè)鏈表的元素,比較指針?biāo)赶蚪Y(jié)點(diǎn)的元素大小,將較小的先加入合并鏈表。

    /** Function: 合并鏈表操作* ----------------------------* 將兩個(gè)鏈表的元素按大小關(guān)系*/LinkedList listMerge(LinkedList L1, LinkedList L2){LinkedList LM = new LNode; // 新的合并鏈表的頭結(jié)點(diǎn)LM->next = NULL;LinkedList tmp = LM;L1 = L1->next;L2 = L2->next;// 如果L1和L2都為空,那么直接返回空的LMif (L1==NULL && L2==NULL){return LM;}// 如果L1,L2其一不為空,或是都不為空,則直接開始比較while (true){// 當(dāng)一方?jīng)]有剩余結(jié)點(diǎn)時(shí),退出循環(huán)if (L1==NULL || L2==NULL){break;}// 比較兩個(gè)鏈表中的元素大小,較小的先加入合并鏈表if (L1->data <= L2->data){tmp->next = L1;tmp = tmp->next;L1 = L1->next;} else {tmp->next = L2;tmp = tmp->next;L2 = L2->next;}}// 當(dāng)一方已經(jīng)完成遍歷時(shí),將另一方的剩余結(jié)點(diǎn)全部加入合并鏈表if (L1==NULL){tmp->next = L2;} else {tmp->next = L1;}return LM; }

    上述實(shí)現(xiàn)方法會(huì)破壞原鏈表,在確定不會(huì)再使用原鏈表后才可使用。例如:

    // L1 = 1 3; // L2 = 2 4;LinkedList LM = listMerge(L1, L2); listPrint(L1); listPrint(L2); listPrint(LM);輸出: L1: 1 2 3 4 L2: 2 3 4 LM: 1 2 3 4

    時(shí)間復(fù)雜度分析
    合并有序鏈表的基本操作是兩個(gè)鏈表內(nèi)元素的比較,假設(shè)鏈表的長(zhǎng)度分別為 LaLaLaLbLbLb ,那么總的比較次數(shù)最多為 La+Lb?1La +Lb -1La+Lb?1 。例如:a={1,3,5},b={2,4,6}a = \{1, 3, 5\}, b = \{2, 4, 6\}a={1,3,5},b={2,4,6} ,總的比較次數(shù)為 5 。

    因此最差時(shí)間復(fù)雜度為 O(La+Lb)O(La + Lb)O(La+Lb)



    相關(guān)章節(jié)

    第一節(jié) 【緒論】數(shù)據(jù)結(jié)構(gòu)的基本概念
    第二節(jié) 【緒論】算法和算法評(píng)價(jià)
    第三節(jié) 【線性表】線性表概述
    第四節(jié) 【線性表】線性表的順序表示和實(shí)現(xiàn)
    第五節(jié) 【線性表】線性表的鏈?zhǔn)奖硎竞蛯?shí)現(xiàn)
    第六節(jié) 【線性表】雙向鏈表、循環(huán)鏈表和靜態(tài)鏈表
    第七節(jié) 【棧和隊(duì)列】棧
    第八節(jié) 【棧和隊(duì)列】棧的應(yīng)用
    第九節(jié) 【棧和隊(duì)列】棧和遞歸
    第十節(jié) 【棧和隊(duì)列】隊(duì)列


    附錄

    單鏈表實(shí)現(xiàn)的完整代碼

    /** File name: LinkedList.h* -----------------------* Using struct to implement LinkedList*/#ifndef _SINGLE_LINKED_LIST_h_ #define _SINGLE_LINKED_LIST_h_ #include <iostream> #include <stdio.h> #include <stdlib.h> using namespace std;/********** 單鏈表的定義 **********/ typedef int elemType; typedef struct LNode{elemType data; // 數(shù)據(jù)域struct LNode *next; // 指針域 } LNode, *LinkedList;/********** 基本操作的實(shí)現(xiàn) **********/ /** Function: 頭插法建立單鏈表* ----------------------------* 從空表開始生成新結(jié)點(diǎn),并將讀取到的數(shù)據(jù)存放到新結(jié)點(diǎn)的數(shù)據(jù)域中,* 然后將新結(jié)點(diǎn)插入到頭結(jié)點(diǎn)之后。*/ LinkedList headInsert(LinkedList &L){ // L是一個(gè)指針LNode *n; // 先聲明一個(gè)結(jié)點(diǎn)指針n,用來(lái)指向?qū)?lái)生成的新結(jié)點(diǎn)elemType e; // 元素e,用來(lái)接收輸入的元素?cái)?shù)據(jù)L = new LNode; // 創(chuàng)建頭結(jié)點(diǎn)L->next = NULL; // 初始為空鏈表scanf("%d", &e); while(e!=-1){n = new LNode; // 創(chuàng)建新結(jié)點(diǎn)n->data = e; n->next = L->next; // 將新結(jié)點(diǎn)插入頭結(jié)點(diǎn)之后L->next = n;scanf("%d", &e);}return L; // 返回頭結(jié)點(diǎn) }/** Function: 尾插法建立單鏈表* ----------------------------* 從空表開始生成新結(jié)點(diǎn),并將讀取到的數(shù)據(jù)存放到新結(jié)點(diǎn)的數(shù)據(jù)域中,* 然后將新結(jié)點(diǎn)插入到鏈表的表尾。*/ LinkedList tailInsert(LinkedList &L){LNode *n; // 聲明新的結(jié)點(diǎn)nLinkedList t; // 聲明尾指針telemType e;L = new LNode; // 創(chuàng)建頭結(jié)點(diǎn)L->next = NULL;t = L; // 將指針t指向表尾,此時(shí)鏈表為空,表尾就是頭結(jié)點(diǎn)scanf("%d", &e);while (e!=-1){n = new LNode; // 創(chuàng)建新結(jié)點(diǎn)n->data = e;t->next = n; // 將新結(jié)點(diǎn)n加入鏈表t = n; // 將尾結(jié)點(diǎn)指向新結(jié)點(diǎn)nscanf("%d", &e);}t->next = NULL; // 將新的鏈表的尾結(jié)點(diǎn)指針置空return L; }/** Function: 判空操作* ----------------------------* 判斷鏈表是否為空。*/bool listEmpty(LinkedList L){return !L->next; // 如果只有頭結(jié)點(diǎn),則鏈表為空 }/** Function: 求表長(zhǎng)操作* ----------------------------* 計(jì)算單鏈表中結(jié)點(diǎn)的個(gè)數(shù),不包括頭結(jié)點(diǎn)。*/int listLength(LinkedList L){int count=0; // 用來(lái)計(jì)算結(jié)點(diǎn)個(gè)數(shù)LinkedList tmp=L;while (tmp->next!=NULL){tmp = tmp->next;count++;}return count; }/** Function: 按位查找結(jié)點(diǎn)* ----------------------------* 在單鏈表中從第一個(gè)結(jié)點(diǎn)出發(fā),直到找到第i個(gè)結(jié)點(diǎn)為止,* 否則返回最后一個(gè)結(jié)點(diǎn)指針域NULL。*/LNode *getElem(LinkedList L, int i){if (i<0){ // 檢查序號(hào)值是否合法return NULL;}LinkedList tmp=L; // 創(chuàng)建臨時(shí)指針,并指向頭結(jié)點(diǎn)for (int j=0;j<i;j++){ if (!tmp->next){ // 如果臨時(shí)指針的指針域?yàn)榭?#xff0c; 則代表return NULL; // 臨時(shí)指針已位于表尾且仍未查到,返回NULL}tmp = tmp->next; }return tmp; // 如果for循環(huán)正常退出,// 則代表找到,返回臨時(shí)指針 } /** Function: 按值查找結(jié)點(diǎn)* ----------------------------* 在單鏈表中從第一個(gè)結(jié)點(diǎn)出發(fā),直到找到某個(gè)結(jié)點(diǎn)的數(shù)據(jù)域* 等于目標(biāo)值為止,否則返回返回NULL。*/LNode *locateElem(LinkedList L, elemType e, int &count){LinkedList tmp=L->next; // 創(chuàng)建臨時(shí)指針,指向頭結(jié)點(diǎn)指針域count=1; // 記錄查找次數(shù)while (tmp!=NULL && tmp->data!=e){ // 如果臨時(shí)指針不為空且還未找到目標(biāo)值,tmp = tmp->next; // 則繼續(xù)while循環(huán)count++;}return tmp; }/** Function: 插入操作 * ----------------------------* 在指定位置i插入結(jié)點(diǎn)。* 借用getElem()方法可以將整個(gè)過(guò)程簡(jiǎn)化為三步:* 1. tmp = getElem(L, i-1);* 2. n->next = tmp->next;* 3. tmp->next = n;*/LNode *listInsert(LinkedList &L, elemType e, int i){LinkedList tmp = getElem(L, i-1); // 首先使用按位查找檢測(cè)第i-1個(gè)結(jié)點(diǎn)是否存在,if (tmp==NULL){ // 即檢查插入位置的前驅(qū)結(jié)點(diǎn)是否存在return NULL;}LNode *n = new LNode; // 創(chuàng)建新結(jié)點(diǎn)n->data = e; n->next = tmp->next; // 將新結(jié)點(diǎn)插入第i-1個(gè)結(jié)點(diǎn)之后tmp->next = n;return tmp; }/** Function: 刪除操作* ----------------------------* 刪除在指定位置i的結(jié)點(diǎn)。*/elemType listDelete(LinkedList &L, int i){LinkedList tmp = getElem(L, i-1); // 檢查刪除位置的前驅(qū)結(jié)點(diǎn)是否存在if (tmp==NULL || tmp->next==NULL){ // tmp不存在或者tmp就是最后一個(gè)結(jié)點(diǎn),return -1; // 則不需要執(zhí)行刪除操作,直接返回}LinkedList q = tmp->next; // 指針q指向待刪除結(jié)點(diǎn)elemType e = q->data; // e用來(lái)保存刪除結(jié)點(diǎn)的值tmp->next = q->next; // 斷開q其他結(jié)點(diǎn)在鏈表中連接關(guān)系delete q; // 釋放結(jié)點(diǎn)的存儲(chǔ)空間return e; }/** Function: 輸出操作* ----------------------------* 按順序從頭到尾輸出單鏈表的元素*/void listPrint(LinkedList L){LinkedList tmp=L;while (tmp->next!=NULL){tmp = tmp->next;printf("%d ", tmp->data);}printf("\n"); }#endif // _SINGLE_LINKED_LIST_h

    單鏈表檢測(cè)程序

    /** File name: LinkedList.cpp* -----------------------* Using struct to implement LinkedList*/#include "LinkedList.h"int main() {LinkedList L; // 頭結(jié)點(diǎn)int n, i, res;elemType e;LinkedList node;char helpInfo[] ="*****************************\n""Linked list check: \n""\t1-Create linked list by head insertion\n""\t2-Create linked list by tail insertion\n""\t3-Insert element\n""\t4-Delete element\n""\t5-Print\n""\t6-Empty check\n""\t7-Get Length\n""\t8-Search by value\n""\t9-Search by location\n""\t10-Quit\n""*****************************\n";while (n != 10) {printf(helpInfo);scanf("%d", &n);switch (n) {case 1:printf("Head insertion:\n");printf("Enter -1 to quit.\n");headInsert(L);break;case 2:printf("Tail insertion:\n");printf("Enter -1 to quit.\n");tailInsert(L);break;case 3:printf("Please enter the location: \n");scanf("%d", &i);printf("Please enter the element: \n");scanf("%d", &e);listInsert(L, e, i);break;case 4:printf("Please enter the location: \n");scanf("%d", &i);res = listDelete(L, i);if (res == -1) {printf("Didn't find the target node.\n");} else {printf("Target node in location %d with value %d is ""deleted.\n",i, res);}break;case 5:printf("List: ");listPrint(L);break;case 6:if (listEmpty(L)) {printf("This list is empty.\n");} else {printf("This list is not empty.\n");}break;case 7:printf("Length of list is: %d\n", listLength(L));break;case 8:printf("Please enter the target value: ");scanf("%d", &e);node = locateElem(L, e, i);if (!node) {printf("Didn't find the target node.\n");} else {printf("The index of target is: %d\n", i);}break;case 9:printf("Please enter the target index: ");scanf("%d", &i);node = getElem(L, i);if (!node) {printf("Didn't find the target node.\n");} else {printf("The value of target is %d\n", node->data);}break;}}return 0; }

    總結(jié)

    以上是生活随笔為你收集整理的五、【线性表】线性表的链式表示和实现的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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

    精品国产大片 | 日韩精品国产一区 | 日韩特黄一级欧美毛片特黄 | 九九热免费观看 | 精品一区二区三区久久久 | 视频一区久久 | 欧美黄色软件 | 成人免费电影 | 日韩精品欧美专区 | 日日操日日 | 91福利视频久久久久 | 天天干天天摸天天操 | 999ZYZ玖玖资源站永久 | 午夜精品区 | www.888.av | 丝袜美腿在线 | 色婷婷精品大在线视频 | 一区在线播放 | 久久精品网站视频 | 天堂在线一区二区 | 亚洲激情一区二区三区 | 久草在线91| 蜜臀一区二区三区精品免费视频 | 欧美黄色成人 | 国产经典三级 | 蜜臀av.com | 黄在线免费看 | 91传媒激情理伦片 | 亚洲精品网址在线观看 | 又大又硬又黄又爽视频在线观看 | 成人av.com| 中文字幕乱码亚洲精品一区 | 国产福利网站 | 日韩成人邪恶影片 | 在线观看免费高清视频大全追剧 | 高潮毛片无遮挡高清免费 | 91成人破解版| 久久精品一区 | 91麻豆精品一区二区三区 | 69久久夜色精品国产69 | 日韩一级黄色大片 | 亚洲精品视频免费在线观看 | 天干啦夜天干天干在线线 | 国内偷拍精品视频 | 欧美日韩国产精品一区 | 美女视频黄免费网站 | 91福利小视频 | 国产一区二区三区 在线 | 一级一片免费观看 | aaawww| 97在线观看免费高清 | 欧美精品二 | 在线蜜桃视频 | 亚洲一区二区91 | 久久精品综合一区 | 日韩大片免费在线观看 | 国产98色在线 | 日韩 | 久草电影在线观看 | 毛片99| 国产精品国产三级国产aⅴ9色 | 成人av电影免费 | 91成人免费视频 | 亚洲视频h | 丁香花中文在线免费观看 | 爱爱av网 | 亚洲综合五月 | 91三级在线观看 | 久久视频国产 | 91九色蝌蚪国产 | 久久久久久久久久亚洲精品 | 色中文字幕在线观看 | 免费一级毛毛片 | 成人在线黄色 | 国产精品99久久久精品 | 国产日韩欧美在线一区 | 人人草天天草 | 成人久久久精品国产乱码一区二区 | www黄色av | 国产精品 视频 | 日韩高清在线一区二区 | 激情综合国产 | www.天天干 | 日日操日日干 | 综合铜03| av中文字幕亚洲 | 中文区中文字幕免费看 | 亚洲天堂在线观看完整版 | 日日操天天爽 | 天天干天天上 | 国产高清视频网 | 在线中文字幕一区二区 | 久久成人一区 | 最近免费中文字幕mv在线视频3 | 久操视频在线免费看 | 色网站免费在线观看 | 九九国产视频 | 亚洲在线精品视频 | 久久中文字幕在线视频 | 超碰97久久| 欧美成年性 | av日韩不卡 | 日韩在线三区 | 精品久久福利 | 日韩精品一区二区三区高清免费 | 国产一区二区在线视频观看 | 99久久久久免费精品国产 | 天天做天天爱天天综合网 | 亚洲综合网站在线观看 | 国产一区二区手机在线观看 | 九九免费在线观看视频 | 国产亚洲人成网站在线观看 | 国产视频在 | 啪一啪在线 | 国产永久免费观看 | 六月丁香在线观看 | 免费观看第二部31集 | av品善网| 91精彩在线视频 | 在线中文字幕一区二区 | 夜色在线资源 | www..com毛片| 亚洲永久精品视频 | 久久免费电影网 | 天天色综合天天 | 久久国产成人午夜av影院宅 | 91精选在线观看 | 婷婷中文字幕 | 最新国产精品亚洲 | 成人黄色小说在线观看 | 999一区二区三区 | 中文字幕专区高清在线观看 | 国产一区视频免费在线观看 | 超碰97在线人人 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 91视频这里只有精品 | 国产永久免费 | 免费日韩精品 | 色婷婷天天干 | 美女视频久久黄 | 99久久精品国产毛片 | 欧美日韩国产精品一区二区三区 | 亚洲成成品网站 | 一区二区三区日韩视频在线观看 | 午夜婷婷综合 | 久久精品视频中文字幕 | 免费看的黄色的网站 | 成人污视频在线观看 | 久久精品久久精品久久精品 | 三级小视频在线观看 | 九九综合久久 | 免费在线国产黄色 | 黄视频网站大全 | 97超级碰碰碰碰久久久久 | 成人午夜电影免费在线观看 | 99爱精品视频 | 特级西西444www大精品视频免费看 | 98涩涩国产露脸精品国产网 | 精品夜夜嗨av一区二区三区 | 亚洲激色 | 国产免费观看视频 | 又黄又刺激视频 | 免费在线观看日韩欧美 | 国产91九色视频 | 日韩成人免费在线观看 | 91在线入口 | 射综合网 | 可以免费观看的av片 | 超碰97在线资源站 | 欧美aaa级片 | 欧美疯狂性受xxxxx另类 | 91麻豆精品国产91久久久更新时间 | 色婷婷免费视频 | 国色综合| 日韩欧美网址 | 国产精品永久免费视频 | 免费看片亚洲 | 看av免费 | 国产欧美日韩一区 | 国产一级免费观看 | 在线免费观看黄色小说 | 日韩高清精品免费观看 | 国产成人精品一区二区在线观看 | 日本在线观看一区二区 | 国产主播99 | 久久 地址 | 成年人在线播放视频 | 国产精品久久久久久久99 | 天天操,夜夜操 | 91麻豆精品一区二区三区 | 中文字幕日本在线观看 | 午夜久久电影网 | 久久 亚洲视频 | 国产精品久久久久久一区二区三区 | 久99久精品视频免费观看 | 五月激情在线 | www.在线观看视频 | 色噜噜日韩精品一区二区三区视频 | 91中文字幕在线观看 | 亚洲一区二区麻豆 | 亚洲三级在线免费观看 | 天天干天天搞天天射 | 国产精品视频专区 | 婷婷成人亚洲综合国产xv88 | 日韩videos高潮hd | 99久久国产免费,99久久国产免费大片 | 亚洲精品资源 | 国产69久久久欧美一级 | 午夜视频不卡 | 国产老太婆免费交性大片 | 国产精品一区二区三区久久 | 国产网站色 | 亚洲精品乱码久久久久久写真 | 在线播放91 | 国产午夜一区二区 | 五月天天色 | 91字幕| 欧美日韩精品区 | 成人a视频 | 国产精品免费麻豆入口 | 亚洲国产手机在线 | 亚洲精品永久免费视频 | www.色综合.com | 久久看片 | 精品99视频 | 亚洲第一区精品 | 国产一区二区在线观看视频 | 日韩免费观看一区二区三区 | 久久视频精品在线观看 | 国产精品手机在线 | 国产中文字幕视频在线观看 | 日本婷婷色 | 91免费高清在线观看 | wwwwww国产| 九九九九热精品免费视频点播观看 | 免费av观看| 国产在线观 | 在线欧美中文字幕 | 国产亚洲精品无 | 日韩久久午夜一级啪啪 | 精品久久久久久一区二区里番 | www.com.日本一级 | 亚洲天堂精品视频 | 99爱视频在线观看 | 97国产小视频 | 探花视频在线观看免费版 | 亚洲好视频 | 黄色.com | 99综合久久 | 亚洲精品国产欧美在线观看 | 国产精品99页 | 日本中文字幕网址 | 91最新国产| 青青河边草免费观看完整版高清 | 国产免费久久 | 亚洲一区二区精品3399 | 国产精品久一 | 久久成人免费 | 国产在线视频资源 | 三级a毛片 | 能在线看的av | 丁香六月av | 亚洲人成综合 | 91精品视频网站 | 中文亚洲欧美日韩 | 91视频在线播放视频 | 免费手机黄色网址 | 日韩一区二区免费在线观看 | 国产日韩欧美在线观看 | 亚洲国产69 | 免费试看一区 | 午夜10000 | 日日操夜夜操狠狠操 | 亚洲国产精品成人女人久久 | 五月天堂网 | 在线黄色国产 | 久久五月网 | 97在线看| 九九九视频在线 | 综合国产在线观看 | 免费av在线网 | 国产成人一区二区啪在线观看 | 9999免费视频| 久久中文精品视频 | 日韩欧美视频一区二区三区 | 天天操一操 | 欧美另类性 | av电影在线观看完整版一区二区 | 中文字幕亚洲在线观看 | 日本久久综合网 | 色窝资源 | 丁香激情综合 | 国产精品成人一区二区 | 亚洲欧美日韩在线一区二区 | 久草视频在 | 国产精品麻豆99久久久久久 | 96精品在线| 人人看看人人 | www.久艹| 午夜神马福利 | 免费人成在线观看网站 | 狠狠干综合网 | 久久精品网站免费观看 | 国产精品va| 中文字幕一区2区3区 | 国产精品欧美久久久久久 | 亚洲一区视频在线播放 | 永久黄网站色视频免费观看w | 国产日韩欧美在线看 | 亚洲一区二区三区四区精品 | 久久这里只有精品视频首页 | 99热超碰 | 亚洲欧美日韩精品久久奇米一区 | 麻豆传媒视频观看 | 成人一区影院 | 日韩精品一区二区三区丰满 | 最近中文字幕国语免费高清6 | 色网av| 国产香蕉视频在线观看 | 在线 成人 | www国产亚洲精品久久麻豆 | 亚洲在线视频播放 | 久久精品国亚洲 | 久久久久久美女 | 亚洲欧美国产视频 | 久久免费视频精品 | 国产精久久久久久久 | 国内精品美女在线观看 | 免费精品国产va自在自线 | 国产精品入口a级 | 粉嫩av一区二区三区四区五区 | 久久免费视频在线观看6 | 国产69久久 | 日韩在线一级 | 久久一级电影 | 7777精品伊人久久久大香线蕉 | 久久人人看| 激情五月亚洲 | 国产中文字幕第一页 | 国产精品1区2区3区 久久免费视频7 | 蜜臀av麻豆| 国产剧情一区在线 | 日韩精品资源 | 亚州av免费 | 亚洲精品美女久久17c | 日韩丝袜 | 国产一级二级在线观看 | 天天骚夜夜操 | 成年人在线免费看 | 久久免费精品视频 | 99久久精品国产一区二区三区 | 国产精品麻豆视频 | 日韩在线理论 | 97超碰在线久草超碰在线观看 | 91精品人成在线观看 | 精品91在线 | 91成人免费在线 | 日韩在线精品视频 | 天天色天天爱天天射综合 | 国内外成人在线 | 久在线| 探花视频免费在线观看 | 国产精品自产拍在线观看 | 日韩手机在线 | 国产精品九九久久久久久久 | 亚洲精品国产品国语在线 | 国产亚洲精品日韩在线tv黄 | 色wwwww| 911av视频| 国产成人精品亚洲a | 福利电影久久 | 天天干天天干天天干天天干天天干天天干 | 亚洲va欧美va人人爽 | 久久福利影视 | 九九免费在线观看 | 一级国产视频 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 久久精品视频网 | 国产精品一区二区久久久久 | 日韩二区三区在线 | 亚洲永久av| av经典在线| 中文字幕丰满人伦在线 | 亚洲国产精品久久久久 | 美女黄久久 | 久久综合久久八八 | 免费观看av | 日韩精品久久久久久中文字幕8 | 亚洲欧美成aⅴ人在线观看 四虎在线观看 | 毛片精品免费在线观看 | 亚洲在线看| 免费91麻豆精品国产自产在线观看 | 久久天堂亚洲 | 婷婷伊人综合 | 99精品热| 伊人开心激情 | 特级西西444www大胆高清无视频 | 在线观看精品一区 | av导航福利 | 欧美视频日韩视频 | 精品亚洲成a人在线观看 | 中文在线免费看视频 | 国产一区二区在线免费播放 | 亚洲精品网址在线观看 | 91视频最新网址 | 2017狠狠干| 最新色站| 久久综合九九 | 91成人精品一区在线播放69 | 久久久精品国产一区二区电影四季 | 精品在线视频一区 | 毛片.com | 免费看的黄色片 | 一区久久久| 色婷婷成人网 | 欧美激情视频一区二区三区免费 | 天天射天天操天天干 | 免费男女羞羞的视频网站中文字幕 | 国产综合久久 | 国产精品黄色在线观看 | 国产手机在线观看 | 97综合网 | 亚洲va在线va天堂 | 77国产精品| 蜜臀av一区二区 | 久久久蜜桃一区二区 | 麻豆国产视频下载 | 伊人成人精品 | 久久一区二区三区国产精品 | 日本久久精品 | 天天综合视频在线观看 | www.91av在线| 久久综合综合久久综合 | 久久久色 | av再线观看 | 欧美成人精品在线 | 五月天伊人网 | 97超视频免费观看 | 日韩电影在线视频 | 欧美在线视频二区 | 黄色91免费观看 | 在线免费观看av网站 | 91高清视频免费 | 中文字幕日本在线 | 99色国产 | 日韩一区二区三免费高清在线观看 | 欧美一级性生活 | 狠狠干免费 | 亚洲精品动漫成人3d无尽在线 | 最新午夜电影 | 国产精品美女免费看 | 国产91精品高清一区二区三区 | 在线亚洲成人 | 日韩有码第一页 | 超碰人人草人人 | 欧美一区二区三区激情视频 | 91成人网页版 | 又黄又刺激的网站 | www久久 | 国产成人精品aaa | 国产午夜影院 | 99久久99久久精品 | 亚洲欧洲精品在线 | 天天做日日做天天爽视频免费 | 99热这里是精品 | 久久国产免费 | 久久99久久99精品 | 九九涩涩av台湾日本热热 | 色就是色综合 | 国产精品理论视频 | 欧美国产日韩一区二区三区 | 最近最新中文字幕 | 中文字幕观看av | 国产黄色片免费观看 | 欧美一级在线 | 亚洲春色综合另类校园电影 | 高清不卡一区二区在线 | 中文字幕在线久一本久 | 日本久久成人 | 91成人在线观看高潮 | 中文字幕在线观看日本 | 免费看一级一片 | 久久久久久高潮国产精品视 | 97中文字幕 | 午夜精品久久久久久久久久 | 91在线观看视频 | 久久精品aaa | 久久成人毛片 | 在线看片中文字幕 | 亚洲在线资源 | 日韩在线中文字幕 | 国内精品久久久久影院优 | 日韩精品不卡在线 | 热久在线 | 黄色高清视频在线观看 | 色婷婷天天干 | 婷婷在线色 | 色综合久 | 国产成人免费观看久久久 | 国产日韩精品一区二区在线观看播放 | 国产高清免费 | 视频在线亚洲 | 中文字幕在线观看网站 | 国产区欧美 | www.色午夜,com | 久操久 | 精品毛片久久久久久 | 欧美性极品xxxx娇小 | 黄色av网站在线观看免费 | 久久99视频免费观看 | av福利第一导航 | 久久综合九色综合久久久精品综合 | 国产精品69久久久久 | 中文字幕在线观看你懂的 | 日韩最新av在线 | 9999精品| 国产成人1区 | 久久精品国产一区二区三区 | 婷婷社区五月天 | 国产一区二区久久久久 | 久久av免费观看 | 中文超碰字幕 | 91探花系列在线播放 | 久久精品欧美一 | 天天射天天舔天天干 | 国产九色在线播放九色 | 伊人欧美 | 日韩精品专区在线影院重磅 | 深夜免费小视频 | 亚洲最新av网址 | 99在线视频观看 | 2023av在线| 亚洲成aⅴ人片久久青草影院 | 日韩午夜剧场 | 国产亚洲精品久久久久久无几年桃 | 日本公乱妇视频 | 最新av免费在线观看 | 欧美在线99| 亚洲午夜激情网 | 97色se| 成人午夜av电影 | 日韩久久影院 | 婷婷五情天综123 | 中文字幕一区三区 | 国产a级精品 | 亚洲成人av在线电影 | 国产精品中文字幕在线观看 | 国产日韩欧美精品在线观看 | 亚洲综合视频在线观看 | 国产成人精品一区一区一区 | 国产视频久久 | 精品国产亚洲一区二区麻豆 | 成人久久久久久久久久 | 亚洲精品免费在线视频 | 69精品视频| 国产破处在线播放 | 日本公妇在线观看高清 | 亚洲美女免费精品视频在线观看 | 色wwww| 99久久婷婷国产一区二区三区 | 伊人精品影院 | 在线亚洲午夜片av大片 | 久日精品 | 人人爽人人搞 | 伊人电影在线观看 | 亚洲精品国产精品国自产观看 | 欧美午夜a | 精品国产一区二区三区久久久 | 亚洲男模gay裸体gay | 日日夜夜网站 | 最新中文字幕在线观看视频 | 在线观看 亚洲 | 午夜电影av | 91丨九色丨91啦蝌蚪老版 | 乱子伦av| 66av99精品福利视频在线 | 亚洲一区天堂 | 韩国一区在线 | 国产原创在线 | 毛片精品免费在线观看 | 深夜视频久久 | 91少妇精拍在线播放 | 亚洲精品视频在线免费播放 | 亚洲激情网站免费观看 | 91精品国产综合久久久久久久 | 免费a视频 | 国产又粗又硬又爽的视频 | 午夜久久福利影院 | 成人精品一区二区三区电影免费 | av福利在线| 五月婷婷综合色拍 | 国内精品久久久久影院一蜜桃 | 最新av网址在线 | 少妇资源站| 国产精品美女久久久久久久 | 久久综合中文字幕 | 91视频免费看片 | 日韩亚洲在线 | 色a资源在线 | 久久不卡免费视频 | 中文字幕在线视频国产 | 精品在线免费视频 | 国产真实精品久久二三区 | 亚洲国产成人在线播放 | 中文字幕 在线看 | 欧美日韩视频一区二区三区 | 国产精品福利无圣光在线一区 | 免费视频91蜜桃 | 久久国产精品成人免费浪潮 | 97av影院 | 欧美高清视频不卡网 | 日韩精品在线免费观看 | 天天干天天想 | 三级性生活视频 | 99热高清 | 国内精品久久久久久久久久久 | 国产成人亚洲在线观看 | 美女网站视频免费都是黄 | 亚州国产精品 | 日韩精品一区二区三区在线视频 | 一级黄色毛片 | 亚洲一区动漫 | 福利视频一二区 | 成人cosplay福利网站 | 99热国产精品 | 日韩视频欧美视频 | 国产精品video爽爽爽爽 | 国产精品美女视频 | 日韩区在线观看 | 亚洲人天堂 | 欧美日韩精品久久久 | 99爱这里只有精品 | 国产成人精品免费在线观看 | 怡红院成人在线 | 国产最顶级的黄色片在线免费观看 | 婷色在线 | 精品美女视频 | 91网在线看 | 一区二区三区免费在线观看视频 | 色丁香综合 | 亚洲成人免费 | 精品一区精品二区高清 | 国产区精品 | 亚洲,国产成人av | 五月婷婷视频在线 | 亚洲精品高清一区二区三区四区 | 日韩中文字幕免费 | 最近更新中文字幕 | 免费黄色网址网站 | 超碰在线观看97 | 久久久久久国产精品美女 | 亚洲夜夜综合 | 成人av高清在线 | 久久综合精品国产一区二区三区 | 精品亚洲男同gayvideo网站 | 国产福利一区二区三区视频 | 黄色三级av| 亚洲精品乱码久久久久久按摩 | 久久精品欧美一 | 午夜男人影院 | 激情综合色播五月 | 韩日成人av | 黄色av免费 | www.久久久| 免费看一级黄色 | 色婷婷免费视频 | 国产亚洲婷婷免费 | 97精品一区二区三区 | 中文字幕色网站 | 成人av一区二区三区 | 亚洲天堂网在线视频 | 中文字幕a∨在线乱码免费看 | 操久久网| 久久精品亚洲精品国产欧美 | 一区二区 不卡 | 日本公妇色中文字幕 | av在线一 | 97精品国产97久久久久久春色 | 久久久久久久久久久久久久电影 | 91丨九色丨丝袜 | 免费a级黄色毛片 | 日本夜夜草视频网站 | 日韩中文字幕在线 | 国产在线国产 | 五月天色网站 | 黄色aa久久| 日本高清中文字幕有码在线 | 亚洲精品欧洲精品 | 中文字幕日韩有码 | 久久成电影 | 久久久久久久久久国产精品 | 99久久精品免费看国产 | 亚洲干视频在线观看 | 中文字幕最新精品 | 精品电影一区二区 | 三级动图 | 日本三级久久 | 91丨九色丨高潮丰满 | 日韩欧美一区二区不卡 | 久久久污| 成人国产电影在线观看 | 色综合网在线 | 国产精品综合av一区二区国产馆 | 日日操日日干 | 1区2区视频 | 狠狠操天天射 | 蜜桃视频在线视频 | 国产视频 久久久 | 免费不卡中文字幕视频 | 中文字幕久久亚洲 | 欧美在线18| 国产精品免费一区二区三区 | av在线网站免费观看 | 日韩av一区二区三区在线观看 | 色欧美成人精品a∨在线观看 | 色无五月 | 69国产精品视频免费观看 | 日韩一区精品 | 亚洲激精日韩激精欧美精品 | 国产色拍拍拍拍在线精品 | 9在线观看免费高清完整版 玖玖爱免费视频 | 丁香视频在线观看 | 亚洲欧美综合 | 五月天伊人 | 婷婷丁香在线观看 | 麻豆视频免费看 | 免费观看黄色12片一级视频 | 中文字幕av有码 | 国产精品毛片一区二区在线 | 99视频播放| 国产91免费看 | 国产色视频一区二区三区qq号 | 成人九九视频 | 视频国产在线 | 操久| 亚洲视频播放 | 最近中文字幕大全中文字幕免费 | 在线观看免费高清视频大全追剧 | 亚洲综合色av | 日韩在线看片 | 在线日韩精品视频 | 国产视频二 | 天天操夜夜看 | av字幕在线 | 成人avav| 国产一级做a爱片久久毛片a | 四虎影视成人精品 | 欧美日韩在线免费观看视频 | 亚洲高清视频在线观看 | 免费看日韩 | 521色香蕉网站在线观看 | 中文区中文字幕免费看 | 欧美最爽乱淫视频播放 | 国产色女人 | 国产精品久久久久久999 | 国产精品免费在线视频 | 国产一级二级视频 | 97人人精品 | 国产精品视频你懂的 | 国产成人一二三 | 日韩高清av | av大片免费在线观看 | 中文字幕韩在线第一页 | 色噜噜日韩精品欧美一区二区 | 96亚洲精品久久久蜜桃 | 欧美激情第28页 | a黄色片| 91亚洲激情 | 91香蕉视频好色先生 | 日日爱999 | 2021国产精品视频 | 夜夜躁日日躁狠狠久久88av | 狠狠精品| 久久综合导航 | 欧美成人黄色片 | 91福利影院在线观看 | 狠狠综合久久 | 国产视频二区三区 | 久久伊人精品天天 | 免费观看国产成人 | 人人爱人人爽 | 中文字幕在线有码 | 日韩视频在线一区 | 一区三区视频 | 99精品亚洲 | 日韩精品欧美视频 | 国产精品久久久久久久久久久久午夜片 | 999成人免费视频 | 欧美激情综合五月色丁香 | 亚洲综合成人专区片 | 波多野结衣久久资源 | 婷婷视频在线 | 国产欧美高清 | 日本字幕网| 日日干日日 | 成人a视频在线观看 | 成人欧美一区二区三区在线观看 | 伊人超碰在线 | 五月婷婷中文网 | 亚洲 欧美 另类人妖 | 久国产在线播放 | 91亚瑟视频 | 一区在线电影 | 少妇av网| 亚洲一区二区天堂 | 免费在线观看视频a | 久久亚洲免费视频 | 中文字幕在线播出 | 在线观看免费av片 | 中文字幕三区 | 国产精品久久久久久久久岛 | 日韩高清激情 | 精品成人网 | 夜色.com | 麻豆传媒视频在线免费观看 | 99久久精品日本一区二区免费 | 在线观看成人 | 亚洲黄色片在线 | 国产高清在线a视频大全 | 欧美另类xxxxx| av高清一区二区三区 | 欧美三人交 | 中国美女一级看片 | 国产精品永久 | 天天操天天曰 | 91日本在线播放 | 91丨九色丨国产在线 | 在线观看精品一区 | 国产精品系列在线 | 又黄又刺激视频 | 亚洲精品视 | 一本色道久久精品 | 成人影片免费 | av色影院 | 欧美成人精品三级在线观看播放 | 国产小视频在线 | 欧美日韩免费看 | 日日夜夜操操操操 | 成人免费在线播放视频 | 日韩av二区 | av福利第一导航 | 一级特黄av| 国产香蕉久久精品综合网 | 日本中文乱码卡一卡二新区 | 91最新视频在线观看 | 91视频久久久久久 | 日韩av电影中文字幕在线观看 | 日韩无在线 | 超级av在线 | 日本黄色片一区二区 | 日韩欧美国产激情在线播放 | 国产精品九九久久99视频 | 久久精品亚洲综合专区 | 色午夜 | 97成人精品区在线播放 | 91丨九色丨蝌蚪丨老版 | 亚洲国产成人久久 | 在线看v片 | 久久国产免费视频 | 天天干天天看 | 热久久精品在线 | 成人在线观看资源 | 亚洲精品国产精品乱码在线观看 | 欧美精品一区二区三区一线天视频 | 国产视频一区二区三区在线 | 9在线观看免费高清完整版在线观看明 | 日日躁天天躁 | 视频成人| 久久久久欧美精品999 | 成人中文字幕+乱码+中文字幕 | 久草电影在线观看 | 国产精品一区二区三区在线免费观看 | 国产伦精品一区二区三区无广告 | a级片网站 | 精品视频www | 久久久黄视频 | 亚洲视频一区二区三区在线观看 | 九九在线视频免费观看 | 97色综合| 国产69精品久久app免费版 | 亚洲精品激情 | 一区二区视频在线看 | 91热视频| 一区二区三区中文字幕在线 | 欧美日韩国产二区 | 国产精品一区二区久久久久 | 成人免费在线观看av | 96精品视频 | 亚洲四虎在线 | 91精品国产麻豆 | www.久久久精品 | 久久九九国产视频 | 丁香婷婷综合色啪 | 黄色在线观看免费 | 午夜精品久久久久久久爽 | 亚洲精品玖玖玖av在线看 | 超碰在线官网 | 国产精品久久久久久久久蜜臀 | 免费一级片久久 | 国产在线观看av | 日本狠狠干 | 国产精品毛片一区二区三区 | 日韩精品免费在线观看 | 在线影院 国内精品 | 久久国产视频网站 | 黄色成人影视 | 久操久 | 免费在线观看av网站 | 成人高清在线 | 天天干夜夜 | 伊人婷婷色| 九九视频免费在线观看 | 在线视频在线观看 | 婷婷五情天综123 | 成人免费 在线播放 | 欧美色精品天天在线观看视频 | 欧美日韩国产一区二区三区 | 美女免费视频一区 | 午夜在线免费观看视频 | 欧美一级小视频 | 综合色综合色 | 久久污视频 | 91精品视频免费观看 | 亚洲精选99| 国产精品成人免费精品自在线观看 | 狠狠色噜噜狠狠狠狠 | 一区二区三区中文字幕在线观看 | 91成人久久| 精品久久五月天 | 久久久久久久久久久久久9999 | 麻豆网站免费观看 | 樱空桃av| 中文字幕在线观看完整版 | 超碰在97 | 色综合天 | 久久精品福利 | 久久91网| 最近中文字幕在线 | 91最新网址在线观看 | 成人xxxx| 天天天天天天天操 | 最近免费中文视频 | 亚洲精品视频免费看 | 国产精品美女www爽爽爽视频 | 日韩精品在线播放 | 日本精品一 | 亚洲天堂精品视频 | 日本久久中文 | 久草香蕉在线视频 | 狠狠久久综合 | 亚洲精品久久激情国产片 | 精品国产一区二区三区不卡 | 亚洲老妇xxxxxx | 超碰成人免费电影 | 午夜精品一区二区三区四区 | 在线草 | 久久精品国产v日韩v亚洲 | 91av免费在线观看 | 六月丁香综合网 | 免费日韩av电影 | 精品国产综合区久久久久久 | 欧美日韩高清不卡 | 日日夜夜狠狠操 | 亚洲二区精品 | av资源免费看 | 97国产情侣爱久久免费观看 | 中文字幕在线观看第三页 | 久艹视频免费观看 | 国产成人精品综合久久久久99 | www视频免费在线观看 | 粉嫩av一区二区三区四区在线观看 | 91av电影| 国产成人性色生活片 | 九九免费精品视频在线观看 | 美女黄频视频大全 | 精品久久久久一区二区国产 | 最新av在线网址 | 久久情网| 亚洲精品在线一区二区三区 | 深爱激情综合网 | 91精品国产欧美一区二区成人 | 狠狠躁夜夜躁人人爽超碰91 | 美女网站视频色 | 国产理论一区二区三区 | 国产精品免费一区二区三区在线观看 | 国产精品久久在线 | 18国产精品白浆在线观看免费 | 日韩av在线免费看 | 日本韩国精品一区二区在线观看 | 天天在线视频色 | 久久久亚洲网站 | 日韩精品一区二区三区高清免费 | 国产91国语对白在线 | 黄色小说免费在线观看 | 黄色官网在线观看 | 国产免费成人av | 国产精品久久久影视 | 日韩网 | 在线观看深夜视频 |