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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

【练习】2021下半年数据结构刷题笔记和总结 (二) 树、查找-- 不同的排序算法、二叉排序树 平衡二叉树、哈希表查找、线索二叉树、

發(fā)布時間:2024/9/30 40 豆豆

記錄自己下半年寫題目的記錄。題目來自書或者網(wǎng)站。
練習(一)的地址:
https://blog.csdn.net/qq_41358574/article/details/117098620?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162343250816780357289113%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=162343250816780357289113&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2blogfirst_rank_v2~rank_v29-2-117098620.nonecase&utm_term=%E5%88%B7%E9%A2%98&spm=1018.2226.3001.4450

文章目錄

  • 知識點整理
  • 1.一棵二叉排序樹,設計算法查找兩個結點之和等于給定值x的結點
  • 2.樹的層次遍歷
  • 3.一二叉排序樹中的關鍵字由整數(shù)構成,為了查找某關鍵字k,會得到一個查找序列,判斷一個數(shù)組a中的序列是否為該二叉排序的查找序列
  • 4.求關鍵字分別為x,y的結點的最近公共祖先
  • 5.設計算法將二叉排序樹變?yōu)橛行蜴湵?#xff0c;要求不能創(chuàng)建新結點,只修改指針
  • 6.設計算法交換二叉樹b的所有左右子樹要求空間復雜度為1
  • 7.設計算法交換二叉樹b的所有左右子樹要求不破壞原二叉樹結構
  • 8.設計算法利用結點的右孩子指針將一棵二叉樹的葉結點從左往右串成單鏈表
  • 9.設計算法輸出所有根結點到葉結點的路徑及其路徑和
  • 10.【面試題9-11★★★】一個含有13個元素的數(shù)組為前半部分、后半部分是遞增有序,但整個數(shù)組不是遞增數(shù)組,且不知道前、后兩個部分中的元素個數(shù),怎么最快地找出其中的一個數(shù)
  • 11.一個非降序數(shù)組,若target在數(shù)組中出現(xiàn),返回位置,否則返回它將插入的位置
  • 12.二分插入排序
  • 13.希爾排序
  • 14.桶排序實戰(zhàn):用鏈表表示桶,從文件中讀取數(shù)字
  • 15.一個序列用帶頭結點的單鏈表存儲,采用快速排序求遞增排序
  • 16.二叉查找樹的操作
    • 遍歷操作:
    • 插入結點
    • 二叉查找樹的刪除操作
    • 二叉查找樹的查找操作
    • 判斷一個數(shù)組是否是二叉查找樹的后序遍歷
  • 17.線索二叉樹
    • 數(shù)據(jù)結構如下:
    • 尋找中序遍歷線索二叉樹的前驅和后繼結點
    • 先序、后序遍歷的前驅后繼
    • 線索二叉樹中插入結點
    • . 二叉樹的線索化算法實現(xiàn)
    • 遍歷線索二叉樹
  • 18.分塊查找


知識點整理

  • 平衡二叉樹插入結點時速度比較慢
  • 平衡二叉樹的各項操作的時間復雜度為o(logn)
  • 有序數(shù)組的查找性能高但刪除性能低,有序鏈表的查找性能低但刪除性能高,AVL和哈希表的查找和刪除性能都高

1.一棵二叉排序樹,設計算法查找兩個結點之和等于給定值x的結點

1.思路一 中序遍歷產(chǎn)生中序序列(左子樹所有結點的關鍵字均小于根節(jié)點關鍵字)

typedef struct node {char data;struct node* lchild;struct node* rchild; }btnode; void InOrder(btnode* bt, vector<btnode*>& order) {//order:中序遍歷產(chǎn)生的序列InOrder(bt->lchild, order);order.push_back(bt);InOrder(bt->rchild, order); } bool FindSum(vector<btnode*>order, int x, btnode* &p1, btnode* &p2)//p1 p2傳入的是引用 這樣能得到和為x的結點 {//查找兩個結點值之和等于x的p1和p2int i = 0, j = order.size()-1;while (i < j){if (order[i]->data + order[j]->data == x) {p1 = order[i];p2 = order[j];return true;}else if (order[i]->data + order[j]->data > x){j--;}elsei++;}return false; }bool TwoNodeSum(btnode* bt, int x, btnode*& p1, btnode*& p2) {vector<btnode*>order;InOrder(bt, order);if (FindSum(order,x, p1, p2)) return true;else return false; }

思路二 采用兩個棧分別記錄bt的左下結點和右下結點(初始狀態(tài)保存根結點的左下結點和右下結點)

bool TwoNodeSum(btnode* bt, int x, btnode*& p1, btnode*& p2) {stack<btnode*>left, right;btnode* p = bt, * q;while (p != NULL) {if (p->lchild != nullptr) {left.push(p->lchild); p = p->lchild;}p = bt;//注意這個步驟 此后根結點再次賦給pif (p->rchild != nullptr) {right.push(bt->rchild);p = p->rchild;}while (!left.empty() && !right.empty()){p1 = left.top();p2 = right.top();if (p1->data + p2->data > x)//找次大結點 即p2左孩子的所有右下結點進棧{q = p2;right.pop();if (q->lchild != NULL){p = q->lchild;while (p) {right.push(p);p = p->rchild;}}}else if (p1->data + p2->data < x){//找次小結點q = p1;left.pop();if (q->rchild != NULL){p = q->rchild;while (p){left.push(p);p = p->lchild;}}}else return true;}};return false; }

2.樹的層次遍歷

按從上到下從左到右的順序輸出各個結點的值,如果從根到某個葉節(jié)點的路徑上有的結點沒有在輸入中給出,或者給出超過一次,應該輸出-1
樣例輸入:
(11, LL) (7, LLL) (8, R) (5, ) (4, L) (13, RL) (2, LLR) (1, RRR) (4, RR) ()
輸出:
5 4 8 11 13 4 7 2 1

#include<queue> struct Node {int val;bool ifHas;//是否被賦值過Node* left, * right;Node() :ifHas(false), left(NULL), right(NULL) {}; }; Node* root; char s[maxn];//保存讀入結點 void addNode(int v, char* s) {int n = strlen(s);for (int i = 0; i < n; i++){if (s[i] == 'L') {if (root->left == NULL){root->left = new Node();//結點不存在,建立新節(jié)點root = root->left;}}else if (s[i] == 'R') {if (root->right == NULL){root->right = new Node();root = root->right;}}if (root->ifHas == true) continue;root->val = v;//賦值root->ifHas = true;//置為已經(jīng)訪問} }//插入結點的操作 bool bfs(vector<int>& ans) {Node* temp;queue<Node*>q;q.push(root);while (!q.empty()){temp = q.front();if (temp->ifHas == false) return false;//注意這個驗錯。如果沒有被賦值過,表明輸入有誤ans.push_back(q.front()->val);q.pop();if (temp->left)q.push(temp->left);if (temp->right)q.push(temp->right);return true;} } bool read_input() {Node node;int val;while (1){if (scanf("%s", s) != 1) return false;if (!strcmp("()", s)) break;//讀到結尾標志,退出循環(huán)sscanf(&s[1],"%d",&val);//s[1]是字符 &s[1]是字符串“11,LL)”addNode(val, strchr(s, ',') + 1);}return true; }

3.一二叉排序樹中的關鍵字由整數(shù)構成,為了查找某關鍵字k,會得到一個查找序列,判斷一個數(shù)組a中的序列是否為該二叉排序的查找序列

//假設序列a有n個關鍵字,如果查找成功則a[n-1]=k,用i掃描a數(shù)組,p用于在二叉樹bt中查找(p的初值指向根節(jié)點) 注意:沒查找一層都比較p->key與a[i]是否相等 //如果不相等 返回false bool FindSer(Node* bt, int k, int a[], int n) {if (bt == NULL) return false;if (a[n - 1] != k) return false;//先提前判斷這個Node* p = bt;int i = 0;while (i < n && p != NULL){if (p->val != a[i]) return false;if (k > p->val) p = p->right;else if (k < p->val) p = p->right;i++;}if (p != NULL) return true;return false; }

4.求關鍵字分別為x,y的結點的最近公共祖先

Node* LCA(Node*bt,int x,int y) {{if (bt == nullptr) return NULL;if (x < bt->left->val && y < bt->left->val) return LCA(bt->left, x, y);else if (x > bt->right->val && y > bt->right->val) return LCA(bt->right, x, y);else return bt;//注意 如果以上兩種情況都不是,則bt為最近公共結點}

5.設計算法將二叉排序樹變?yōu)橛行蜴湵?#xff0c;要求不能創(chuàng)建新結點,只修改指針

方法一:

//1.遞歸的方法 將二叉樹bt中所有結點的左指針lchild轉化為指向前驅結點,右指針轉化為指向后繼結點 //if bt->lchild==null first = bt,if bt->rchild==null last =bt //注意需要銷毀雙鏈表 void convert(Node* bt, Node*& first, Node*& last) {if (bt == nullptr) {//空樹first = nullptr;last = nullptr;}Node* lfirst, * llast, * rfirst, * rlast;//遞歸調用時左子樹和右子樹的首位指針,一共四個if (bt->left == nullptr) first = bt;else if (bt->left != nullptr) {convert(bt->left, lfirst, llast);first = lfirst;bt->left = llast;llast->right = bt;}if (bt->right == nullptr)last = bt;else {convert(bt->right, rfirst, rlast);last = rlast;bt->right = rfirst;rfirst->left = bt;} } void Display(Node* first, Node* last) {if (first != NULL) {//輸出轉化后的雙鏈表while (first != last){cout << first->val << ",";first = first->right;}cout << first->val;//最后一個結點的值}} void destroy(Node*& L) {//銷毀雙鏈表Node* pre = L, *p = pre->right;//一個首結點 一個首結點的后繼結點while (pre->right){free(pre);pre = p;p = pre->right;}free(pre);//注意最后還有一個結點要釋放 }

方法二:
中序遍歷 用pre全局變量指向中序遍歷當前訪問結點bt的前驅節(jié)點,初始為NULL,中序訪問bt時,設置pre->rchild=bt bt->lchid = pre
兩個方法的輸出和銷毀雙鏈表函數(shù)是一樣的

Node* pre = NULL; void InOrder(Node* bt) {if (bt == NULL) return;if (bt->left) {InOrder(bt->left);bt->left = pre;pre->right = bt;}if (pre != NULL)pre->right = bt;bt->left = pre;pre = bt;InOrder(bt->right);//遞歸構造右子樹 } void convert(Node* bt, Node*& first) {//轉化為首結點為first的雙鏈表Node* p = bt;if (p->left != NULL){p = p->left;}first = p;pre = NULL;InOrder(bt);} int main() {Node* first,*bt;//用排序二叉樹算法建樹convert(bt, first);//轉化為有序單鏈表//輸出雙鏈表的函數(shù)//銷毀雙鏈表}

6.設計算法交換二叉樹b的所有左右子樹要求空間復雜度為1

void swap(btnode*b) { btnode*temp; if(b!=NULL) { swap(b->lchild); swap(b->rchild); temp=b->lchild; b->lchild=b->rchild; b->rchild=temp; } } //基于后序遍歷算法

7.設計算法交換二叉樹b的所有左右子樹要求不破壞原二叉樹結構

btnode* swap(btnode*b) { btnode*t,*t1,*t2; if(b==NULL)t=NULL; else { t=(btnode*)malloc(sizof(btnode));//復制根節(jié)點 t->data=b->data; t1=swap(b->lchild); t2=swap(b->rchild); t->lchild=t2; t->rchild=t1; } return t; }

8.設計算法利用結點的右孩子指針將一棵二叉樹的葉結點從左往右串成單鏈表

//先序遍歷的方法,尾插法構建葉結點,head指向建立單鏈表的首結點,tail指向尾結點 //head tail以引用的方式傳入 void link(btnode*b,btnode*&head,btnode*&tail) { if(b!=NULL) { if(b->lchild==NULL&&b->rchild==NULL)//葉結點 { if(head==NULL){//此時為第一個葉結點 head=b; tail=head; } else { tail->rchild=b; tail=b; } } if(b->lchild!=NULL){ link(b->lchild,head,tail); } if(b->rchild!=NULL)link(b->rchild,head,tail); } //創(chuàng)建并輸出葉結點構成的單鏈表 void vreateLink(btnode*b) { btnode*head=NULL,*tail; link(b,head,tail)//注意head一開始指向null tail->rchild=NULL;//注意尾結點的rchild置空 btnode*p=head; while(p!=NULL) { cout<<p->data<<","; p=p->next; }}

9.設計算法輸出所有根結點到葉結點的路徑及其路徑和

void dispapath(vector<int>path) { vector<int>::iterator it; int sum=0; for(it=path.begin();it!=path.end();it++) { sum+=*it; cout<<*it<<" "; } cout<<sum;void pathSum(btnode*b,vector<int>path) { if(b==NULL)return; path.push_back(b->data); if(b->lchild==NULL&&b->rchild==NULL) { dispath(path);//找到一個葉結點,輸出一條路徑 } pathSum(b->lchild,path); pathSum(b->rchild,path);//如果不是葉結點,先序遍歷的方式繼續(xù)尋找后面的結點

10.【面試題9-11★★★】一個含有13個元素的數(shù)組為前半部分、后半部分是遞增有序,但整個數(shù)組不是遞增數(shù)組,且不知道前、后兩個部分中的元素個數(shù),怎么最快地找出其中的一個數(shù)

如[2,4,5,6,7,8][1,3,5,6,7]
解:由于不知道前、后兩個有序部分中的元素個數(shù),所以先要將其找出來。假設前、后兩個部分分別為a[0.m]和a[m+.n-1],先采用順序方法在a[0…m]中從前向后查找,若a[i]==target(目標元素),找到后算法結束,或者發(fā)現(xiàn)元素逆序后退出循環(huán)(即找到分界線
元素a[m]),然后在a[m+1.n-1]有序區(qū)間中采用二分查找
上述過程對應的時間復雜度為O(n)。對應的算法如下:

int binSearch(int a[],int low,int high,int target) { //二分查找的函數(shù) while(low<=high) { int mid=low+(high-low)>>1;//位運算更高效 if(a[mid]==target) return mid; else if(a[mid]>target) high=mid-1; else low=mid+1; } return -1;//沒找到 } int search(int a[],int n,int target) { int i; for(i = 0;i < n;i++) { if(a[i]==target)return i; if(a[i]>a[i+1])break; } int low=i+1,high=n-1; binSearch(a,low,high,target);//如果a[0,..m]中沒有找到目標,則在第二個遞增數(shù)組中查找

11.一個非降序數(shù)組,若target在數(shù)組中出現(xiàn),返回位置,否則返回它將插入的位置

寫法1:

int SearchInsert(int a[],int n,int target) {if(a[n-1] < target) return n;//a是一遞增數(shù)組int low=0,high = n-1;while(low <= high){int mid = (low+high)/2;if(a[mid] > target) high=mid-1;else if(a[mid] < target) low=mid+1;else return mid;}return low; }

寫法2:

int SearchInsert(int a[],int n,int target) {if(a[n-1] < target) return n;//a是一遞增數(shù)組int low=0,high = n-1;while(low < high){int mid = (low+high)/2;if(a[mid] > target) high=mid;else low=mid+1;}return high; }

12.二分插入排序

void BinInsertSort(int a[],int n) {int i,j,low,high,mid;int tmp;for(i = 1;i < n;i++){if(a[i] < a[i-1]){tmp = a[i];low=0;high=i-1;while(low<=high){mid = (low+high)/2;if(a[mid] > tmp) high=mid-1;else low=mid+1;}for(j=i-1;j>=high+1;j--)a[j+1]=a[j];//集中進行元素后移a[high+1]=tmp;}} }int main() {int a[5]={1,74,3,15,6}; BinInsertSort(a,5); for(int i = 0;i < 5;i++) cout<<a[i]<<" ";}

13.希爾排序

void shell(int a[],int n) {int i,j,d;int tmp;d = n/2;while(d > 0){ for(i = d;i < n;i++) { j = i - d; tmp = a[i]; while(j>=0 && a[j] > tmp) {a[j+d] = a[j];j = j-d; } a[j+d] = tmp;}d = d/2;} }

是不穩(wěn)定的排序算法。
每一趟不一定產(chǎn)生有序區(qū),最后一趟產(chǎn)生全部的有序序列。

直接插入排序:每一趟產(chǎn)生的有序區(qū)不一定是全局有序的。是穩(wěn)定的排序算法。平均時間復雜度為o(n2)
對于直接插入排序,初始數(shù)據(jù)越接近正序性能越好。

14.桶排序實戰(zhàn):用鏈表表示桶,從文件中讀取數(shù)字

15.一個序列用帶頭結點的單鏈表存儲,采用快速排序求遞增排序

先找劃分基準,再分成兩半遞歸排序

void swap(int&x,int &y) { int temp = x; x = y; y = temp; } LinkNode* Paration(LinkNode* first,LinkNode*tail) { if(first == tail) return first;//只有一個結點 LinkNode* pt = first,* p =pt->next; int temp = first->data;//基準值 while(true) { if(p->data < temp) { pt = pt->next; swap(pt->data,p->data);//如果p結點小于temp } if(p == tail) break; p = p->next; } swap(pt->data,first->data);//找到劃分位置,即pt指向的結點 return pt; } void QuickSort(LinkNode*&first,LinkNode*&tail) { if(first!=NULL && tail != NULL && first != tail) { LinkNode*pt = Paration(first,tail); QuickSort(first,pt); QuickSort(pt->next,tail); } }

通過修改結點的值實現(xiàn),沒有改變結點地址。

16.二叉查找樹的操作

遍歷操作:

void inSort(btnode*node) { if(node!=NULL) { inSort(node->lchild);//遞歸遍歷左子樹 std::cout<<node->data<<std::endl;//輸出結點數(shù)據(jù) inSort(node->rchild);//遞歸遍歷右子樹 } }

插入結點

步驟:如果二叉查找樹為空,則插入結點就為根節(jié)點
否則將待插入結點與根節(jié)點進行比較,如果小于根節(jié)點就插入到左子樹,大于根節(jié)點就插入到右子樹中

void insert(btnode*node) { btnode*temp = NULL,*cnt;//中間指針 cnt = root; while(cnt != NULL) { temp=cnt;//用于保存最后一個有效結點 if(cnt->data > node->data) { cnt = cnt->lchild; } else { cnt = cnt->rchild; } } if(temp==NULL) //根節(jié)點為空 { root = node; count++;} if(node->data<temp->data) {temp->lchild = node; count++;} else {temp->rchild = node; count++;} }

二叉查找樹的刪除操作

考慮幾種情況:
如果沒有子女結點,則修改父節(jié)點的指針,使其指向NULL,刪除結點x
如果結點x只有一個孩子結點,修改其父節(jié)點和孩子結點的parent指針 建立聯(lián)系,如果左右孩子都存在 用左子樹中的最大值或者右子樹的最小值代替x

二叉查找樹的查找操作

btnode search(DataType k) { btnode*node = root; while(node!=NULL) { if(node->data>k) node= node->lchild; else if(node->data < k) node = node->rchild; else break;//相等則退出 } return node; }

判斷一個數(shù)組是否是二叉查找樹的后序遍歷

//判斷一個數(shù)組是否是一個二叉查找樹的后序遍歷 bool postSequence(int sequence[],int len) {if(sequence == NULL || len <= 0) return false;//先驗錯 int root = sequence[len-1];//找到根節(jié)點 int i = 0; for(;i<len-1;i++) if(sequence[i]>root) break;//左子樹均小于根節(jié)點 這里i是下標也是長度 int j = i; for(;j < len-1;j++)//注意這里j是下標而不是長度 if(sequence[j] < root) return false;//如果右子樹有小于根節(jié)點的 返回false bool left = true;//判斷左子樹是否是查找樹 if(i > 0) {//有可能沒有左子樹,故加上i>0的判斷left = postSequence(sequence,i);//i是左子樹的長度 } bool right = true; if(j < len-1) right = postSequence(sequence+i,len-i-1);//注意右子樹開始的序列和右子樹的長度 return (right && left); }int main() {int s[7];for(int i = 0;i <7;i++)cin>>s[i];bool res=postSequence(s,7);if(res)cout<<"是"; }

5 7 6 9 11 10 8

17.線索二叉樹

我們利用二叉樹鏈式存儲結構的空指針來存儲結點的直接前驅指針和直接后繼結點指針,這些指針稱為線索,利用線索來保留前驅和后繼結點信息的二叉樹稱為線索二叉樹。
我們設定結點左指針指向前驅節(jié)點,右指針指向后繼結點,且每個結點增加兩個標志量lFlag和rFlag,當lchild rchild是指向孩子節(jié)點的指針時相應的標志量為1,是線索時為0
也就是說rchild lchild可能時指向孩子的指針也可能是線索

數(shù)據(jù)結構如下:

template<typename DataType>class ThreadBTNode{ public: friend class ThreadBT<DataType>; ThreadBTNode(DataType data) { lFlag = rFlag =0; this->data = data; lchild = rchild = NULL; } ThreadBTNode() { lFlag = rFlag =0; lchild = rchild = NULL;//帶數(shù)據(jù)結點的構造函數(shù)和空構造函數(shù) } private: ThreadBTNode<DataType>*lchild,*rchild;//左右指針域 int lFlag,rFlag;//標志量 DataType data;//數(shù)據(jù)域 }; template<typename DataType>class ThreadBT{ public: ThreadBT(){ root = NULL; } ThreadBT(DataType data) { root = new ThreadBTNode< DataType>(data); } private:}

尋找中序遍歷線索二叉樹的前驅和后繼結點

線索二叉樹的前驅和后繼結點與使用的遍歷方式有關,線索二叉樹之間的區(qū)別就是根據(jù)不同的遍歷方式其結點的前驅和后繼不同
對二叉樹進行一次中序遍歷便明白結點node的前驅節(jié)點是左子樹中最右邊的結點,后繼結點是右子樹最左邊的結點

template<typename DataType>ThreadBTNode<DataType>*ThreadBT<DataType>::prior(ThreadBTNode<DataType>*node) { ThreadBTNode<DataType>*s = node->lchild; if(node->lFlag==1) {//為1時代表node的左指針不是線索,不指向前驅,如果lFlag為0,可以直接返回s while(s->Flag==1) { s = s->rchild; }//一直找結點的右子結點,直到找到左子樹的最右子節(jié)點} return s;//返回前驅 }

同理查找后繼:

template<typename DataType>ThreadBTNode<DataType>*ThreadBT<DataType>::succ(ThreadBTNode<DataType>*node) { ThreadBTNode<DataType>*s; s = node->rchild; if(node->rFlag == 1) { while(s->lFlag == 1)//循環(huán)查找結點的右子節(jié)點,找到右子樹的最左節(jié)點 s = s->lchild; } return s; }

先序、后序遍歷的前驅后繼

標志ltag和rtag,并約定:
0 結點中的 lchild字段指向左孩子;
ltag=
1 結點中的 lchild字段指向前驅;
0 結點中的 rchild字段指向右孩子;
rtag=
1 結點中的 rchild字段指向后繼;

typedef struct tbnode{elementtype data;tbnode *lchild, *rchild;int ltag, rtag;}tbnode

(1) 先序線索二叉樹中先序后繼的求解——先序后繼
對先序線索二叉樹中任意結點P,求其先序后繼。
討論:
(a) 若p有左孩子 ——按照遍歷的過程描述(PPLPR)可知,
其后繼應為:左子樹PL中的第一個結點,
即p的左孩子結點,
因此, p->lchild為其后繼;
(b) 否則,*p有右孩子 ——類似地,可知
p->rchild為其后繼;
? 否則,
p->rchild為其后繼線索;
由此得算法如下:

tbnode *presuc(tbnode *p) {if ( p -> ltag == 0 ) return ( p -> lchild );else return ( p -> rchild ); }

后序前驅的求解
分析:
(a) 若p有右孩子 —— 右孩子結點是其前驅;
(b) 否則,若P有左孩子 —— 左孩子結點是其前驅;
? 否則 —— p -> lchild是其前驅線索 。
與先序后繼的求解方式對稱。
由此得算法如下:

tbnode *postpre(tbnode *p) {if ( p -> rtag == 0 ) return ( p -> rchild );else return ( p -> lchild );}

(6) 后序后繼的求解
分析:
(a) 根 —— 無后繼;
(b) 若*p是其父結點的右孩子 —— 父結點是其后繼;
? 若是父結點的左孩子 ——
無右兄弟 —— 父結點是其后繼;
有右兄弟
—— 右兄弟子樹的后序序列的第一個結點是其后繼
——右兄弟子樹中最左下的葉子結點。

線索二叉樹中插入結點

在結構中插入一個元素或結點是常見的運算。
在線索二叉樹中插入一個結點時,不僅要實現(xiàn)指定結點的父子關系的運算,還需要在插入結點后,通過修改線索,以維護二叉樹的線索關系。例如,在右圖線索二叉樹中,將某結點插入到作為結點F的左孩子。
如何實現(xiàn)相關的操作?
分析:對這類插入操作,通常從兩個方面來考慮其實現(xiàn):
(1)一個是父子關系的連接實現(xiàn)
按照指定關系連接即可
(2)線索關系的維護
這一關系的實現(xiàn)有一定的難度。

下面分別討論。
(1)父子關系的連接實現(xiàn)
對前述問題,由問題描述可知,
假設指針P指示到了F結點,
連接操作如圖所示,操作如下:
p->lchild=s;
p->ltag=0;

(2)線索關系的維護
這一操作主要由如下組成:
(某些操作可能因具體問題而不同)
設置新插入結點的前驅、后繼線索
修改新結點的前驅結點的后繼線索
修改新結點的后繼結點的前驅線索
例如,在右圖線索二叉樹中,
將某結點插入到作為結點F的左孩子。
如何實現(xiàn)相關的操作?

下面先討論線索操作的一般性方法,
然后給出本題的操作實現(xiàn)。假設當前結點為P,由于線索關系使得結點之間建立了線性關系,因此,插入結點時的線索維護類似于雙鏈表中插入結點。由于新結點是作為P的后繼,
因此,可有如下的邏輯圖:

. 二叉樹的線索化算法實現(xiàn)

——先序線索化為例
前驅結點的后繼線索化;
當前結點的前驅線索化;
判斷當前結點是否需要后繼線索化

void prethread( bnode * t, bnode * pre){ if ( t != NULL ){if (( pre != NULL ) && ( pre->rtag==1)) pre->rchild=t;if ( t->lchild == NULL ) { t->lchild = pre; t->ltag=1;}else t->ltag=0;if ( t->rchild == NULL ) t->rtag=1;else t->rtag=0;pre = t;if ( t->ltag==0) prethread( t->lchild, pre); if ( t->rtag==0) prethread( t->rchild, pre); } }

遍歷線索二叉樹

//利用前面的尋找前驅和后繼節(jié)點的算法 中序 void inOrder() { if(root !=NULL) { ThreadBTNode<DataType>*s = root; while(prior(s)!=NULL) { s = prior(s);//找到起始結點 } while(succ(s)!=NULL) { cout<<s->data<<" "; s = succ(s);//從起始結點開始遍歷節(jié)點 } }

18.分塊查找

基本思想:先插索引表,利用順序查找或者二分查找確定待查關鍵字k,屬于哪一個塊
根據(jù)索引表中塊首記錄的地址找到主表中塊的起始地址,利用順序查找的方法查找k,如果找到則返回地址,否則返回null

總結

以上是生活随笔為你收集整理的【练习】2021下半年数据结构刷题笔记和总结 (二) 树、查找-- 不同的排序算法、二叉排序树 平衡二叉树、哈希表查找、线索二叉树、的全部內容,希望文章能夠幫你解決所遇到的問題。

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

又黄又刺激的视频 | av在线播放网址 | 奇米影视8888在线观看大全免费 | 国产亚洲婷婷 | 嫩草伊人久久精品少妇av | 国产在线a不卡 | 欧美最猛性xxxxx免费 | 国产婷婷在线观看 | www.久久久.com| 天天操比 | 深夜免费小视频 | 免费日韩在线 | 日韩网站在线播放 | 91看片淫黄大片在线播放 | 91香蕉视频黄色 | 国产色在线,com | 久久久精品久久日韩一区综合 | 国产最新在线 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 在线小视频你懂的 | 国产亚洲亚洲 | 中文字幕丝袜美腿 | 天堂av在线免费观看 | 日日夜夜精品免费 | 久草在线视频中文 | 在线免费高清 | 一级片黄色片网站 | 超碰97在线看| 欧美日韩中文字幕在线视频 | 亚洲国产精品500在线观看 | 成年人在线观看视频免费 | a资源在线| 国产区网址 | 日韩精品久久一区二区 | 精品视频区 | 九九影视理伦片 | 毛片888 | 日韩精品免费在线 | 综合色影院 | 国产特级毛片aaaaaa | 欧美日韩二三区 | 亚洲免费资源 | 91成年人网站 | 欧美黑人性爽 | 亚洲人天堂 | av 一区二区三区 | 国内精品久久久久久中文字幕 | 欧美日韩不卡在线视频 | 亚洲 欧洲 国产 日本 综合 | 午夜久久影视 | 国产在线精品一区二区不卡了 | 伊人狠狠色丁香婷婷综合 | 精品9999 | 最新色站 | 欧美日韩国产二区 | 国产精品99久久久久人中文网介绍 | 人人爱人人做人人爽 | 中文字幕在线观看免费高清电影 | 久久免费视频99 | 国产免费观看久久黄 | 国产成人黄色网址 | 草在线视频 | 国产精品资源在线观看 | 日韩av视屏在线观看 | www.夜夜草 | 久久综合色一综合色88 | 精品人人爽 | 综合在线色 | 日韩二区精品 | 国产在线精品视频 | 亚洲国产精品va在线看黑人动漫 | 亚洲精品资源 | 91成人蝌蚪| 午夜色大片在线观看 | 人人爱在线视频 | 婷婷 中文字幕 | 亚洲一级国产 | 国内精品久久久久久久久 | 国产午夜激情视频 | 99精品国产亚洲 | 91高清不卡 | 国产在线 一区二区三区 | av免费观看高清 | 欧美一级电影在线观看 | 日日爱夜夜爱 | 午夜性生活片 | 欧美日韩国产一区 | 国产免费黄色 | 99色亚洲 | 9在线观看免费高清完整 | 免费看成人av | 少妇视频一区 | 中文字幕网站视频在线 | 高潮毛片无遮挡高清免费 | 免费看成年人 | 国产中文字幕在线播放 | 日韩久久精品一区二区 | 三日本三级少妇三级99 | 国产成人久久77777精品 | 色婷婷一区 | 99视频免费播放 | 日日夜夜天天 | 天天躁天天狠天天透 | 韩国av免费观看 | 国产精品久久久久久久久久东京 | 国产精品va在线 | 97超碰中文字幕 | 天天干天天干天天射 | 精品国产一区二区三区在线观看 | 国内揄拍国内精品 | 这里只有精品视频在线观看 | 久久伦理 | 岛国大片免费视频 | 欧美高清成人 | 国产一区二区视频在线播放 | 国产成年人av | 久久综合免费视频 | 国产一区免费观看 | 一本一本久久a久久精品综合小说 | 久久激情视频免费观看 | 色综合久久66 | 91香蕉久久 | 天天爽天天爽 | 97色婷婷| 欧美va在线观看 | 欧美日韩午夜在线 | 97天天综合网 | 免费观看成人网 | 91精品久久久久久久99蜜桃 | 99热99 | 亚洲国产视频网站 | 久久精品牌麻豆国产大山 | 天操夜夜操 | 一级黄色片毛片 | 久久精品79国产精品 | 国产精品视频线看 | 日韩精品一区二区三区免费观看 | 国精产品999国精产品视频 | 国产99精品在线观看 | av丝袜在线 | 伊人天天狠天天添日日拍 | 五月天激情视频在线观看 | www在线免费观看 | 欧美一级日韩三级 | 成人国产精品久久久 | 高清av网站 | 亚洲www天堂com | 中文在线亚洲 | 日韩 精品 一区 国产 麻豆 | 中文字幕一区2区3区 | 中文字幕在线有码 | 欧美片一区二区三区 | 亚洲精品久久久蜜桃 | 国产不卡av在线 | 天天干天天操天天入 | 久久97精品| 国产亚洲日本 | 欧美日韩一级久久久久久免费看 | 国产福利午夜 | 日韩二区三区在线观看 | 99成人免费视频 | 探花视频免费观看 | 国产高清视频在线播放 | 狠狠成人| 中文字幕在线观看视频免费 | 国产亚洲成人网 | 99热网站 | 欧美日韩aa| 51久久成人国产精品麻豆 | 久久专区| 黄色录像av | 免费色网站 | 亚洲精品九九 | 久草免费在线视频 | 亚洲色图 校园春色 | 色姑娘综合| 亚洲欧洲精品在线 | 日本午夜免费福利视频 | 日韩精品免费在线观看 | 日韩欧美国产激情在线播放 | 狠狠色噜噜狠狠 | 国产精品久久久久久久久久不蜜月 | av中文字幕网站 | 日本中文在线播放 | 精品伦理一区二区三区 | 精品久久久久国产 | 成人国产网站 | 国产精品大尺度 | 久久99久国产精品黄毛片入口 | 99精品久久久久久久 | 免费观看国产精品视频 | 国产成人综合在线观看 | 国产精品一级在线 | 干干干操操操 | 国产九色在线播放九色 | 啪啪免费视频网站 | 日韩亚洲欧美中文字幕 | 特级xxxxx欧美 | 婷婷中文在线 | 国产美女精品久久久 | 91自拍视频在线 | 欧美日本不卡 | 精品在线视频一区二区三区 | 超碰在线人人爱 | 亚洲精品人人 | 日韩一区精品 | 精品a级片| 欧美久久综合 | 亚洲综合激情五月 | 久久国产三级 | 日韩成人在线一区二区 | 最近免费中文字幕大全高清10 | 美女在线免费视频 | 免费视频18| 国产中文字幕视频在线观看 | 欧美成人影音 | 亚洲永久精品在线观看 | www.狠狠色.com | 色丁香久久 | 亚洲免费在线视频 | 久草在线视频中文 | 欧美一级在线观看视频 | 日本91在线| 国产视频中文字幕在线观看 | 国产精品欧美日韩在线观看 | 久久视频99 | 久草av在线播放 | 国产精品婷婷 | 激情网色| 97精品国产97久久久久久久久久久久 | 91亚洲精品久久久久图片蜜桃 | 国产精品久久久久影院 | 亚洲精品9| 91在线观看视频网站 | 婷婷www| 国产999视频 | 国产精品久久久久毛片大屁完整版 | 亚洲一区视频在线播放 | 亚洲国产97在线精品一区 | 日韩理论在线播放 | 久久一区精品 | 91一区二区三区在线观看 | 亚洲精品视频中文字幕 | 午夜视频在线观看一区二区 | 在线a视频免费观看 | 久久国产精品视频免费看 | 少妇资源站 | 国产精品18毛片一区二区 | 亚洲日本va午夜在线影院 | 成年人免费电影在线观看 | 又大又硬又黄又爽视频在线观看 | 亚洲国产中文字幕在线 | 激情av一区二区 | 日本大片免费观看在线 | 国产美女在线免费观看 | 香蕉视频久久久 | 久久久久久久久网站 | 午夜国产福利在线观看 | 国产精品一区二区久久精品爱微奶 | 国产精品免费在线播放 | 亚洲精品视频免费观看 | 婷婷性综合 | av在线免费观看黄 | 黄色在线观看免费网站 | 天天操天天干天天 | 狠狠五月婷婷 | 亚洲成人软件 | 成人一区不卡 | 热热热热热色 | www.亚洲视频 | 免费精品| 中文字幕在线色 | 国产成人99av超碰超爽 | 国产色道| 日本久久久久久久久久久 | 欧美在线99| a黄色片| 天天干,天天干 | 久久久久久国产一区二区三区 | 国产精品一区专区欧美日韩 | 天天色棕合合合合合合 | 中文字幕在线视频一区二区 | 日韩电影在线看 | 亚洲 欧美 变态 国产 另类 | 国产精品欧美日韩在线观看 | 国产中文字幕av | 久久国产一区二区三区 | 99视频在线看 | 天天操天天射天天爱 | 国产传媒一区在线 | 手机在线看片日韩 | 天天操天天操天天操天天 | 91av网站在线观看 | 成人在线一区二区 | 国产精品区免费视频 | 人人草人人草 | 六月天综合网 | 毛片www | 久久高清免费观看 | 日本精品视频一区 | 欧美日韩国产在线一区 | 日日夜夜天天射 | 中文字幕婷婷 | 中文字幕一区二区三区四区 | 天天天天色综合 | 欧美一区二区三区激情视频 | 99精品视频一区二区 | 国产日本亚洲高清 | 伊人五月天 | 黄色av电影一级片 | www.91成人| 国产99久久精品 | 成人午夜电影在线 | 激情综合网五月 | 亚洲国产日韩欧美在线 | 17婷婷久久www | 午夜精品999 | 狠狠色丁香婷婷综合最新地址 | 国产午夜精品一区二区三区 | 国产色综合天天综合网 | 欧美精品在线观看 | 97超碰伊人 | 国产成人在线播放 | 911国产| 日韩精品一区二区三区高清免费 | 亚洲视频在线看 | 天天色.com | 五月天激情综合网 | 久久精品视频日本 | 91在线观看视频网站 | 国产视频一区二区在线播放 | 高清av在线免费观看 | 色婷av| 亚洲片在线观看 | 国产精品网红直播 | 亚洲一区精品二人人爽久久 | 人人干狠狠操 | 成年人在线播放视频 | 91在线精品秘密一区二区 | 五月综合色 | 综合国产在线观看 | 亚洲少妇久久 | 国产黄色视 | 成人av资源网站 | 中文字幕 国产专区 | av中文字幕亚洲 | 亚洲精品免费在线 | 97品白浆高清久久久久久 | 欧美另类交人妖 | 成人午夜精品久久久久久久3d | 天天射天天爽 | 五月天婷婷在线视频 | 天海冀一区二区三区 | 免费一级黄色 | 欧美久久久久久久久久久久久 | 激情中文字幕 | 麻豆av电影 | 日韩视频一区二区三区在线播放免费观看 | 一区二区三区四区影院 | 91高清一区| 亚洲国产成人精品在线观看 | 伊人网综合在线观看 | 人人超在线公开视频 | 国产原创在线 | 日韩精品中文字幕在线不卡尤物 | 色夜影院 | 九九九视频精品 | 在线成人一区 | 六月丁香激情网 | 玖玖精品在线 | 天天综合天天做天天综合 | 国产在线观 | 免费av网站观看 | 久久免费福利 | 日韩一区二区免费视频 | 亚洲一级二级三级 | 九九久久成人 | aav在线 | 久久国产精品久久久 | av福利在线免费观看 | 麻豆久久| 国产馆在线播放 | 久久久久久久久爱 | 成人91在线| 久久午夜精品影院一区 | 亚洲经典视频 | 国产精品永久久久久久久www | 麻豆视频免费在线 | 国外成人在线视频网站 | 亚洲成人黄色av | 又黄又爽又无遮挡免费的网站 | 91人人视频在线观看 | 国产99久久久精品 | 成人av网站在线观看 | 久久久久久免费 | 午夜精品久久久久99热app | 成人av资源在线 | 国产成人精品av在线 | 亚洲成a人片在线观看网站口工 | 97精品国产97久久久久久粉红 | 国产精品国产三级国产aⅴ9色 | 国产精品免费观看在线 | 日本视频不卡 | 国产成人精品一区二区三区网站观看 | 丁香婷婷在线观看 | 国产aa精品 | 久99热| 女女av在线 | 黄色一级大片在线观看 | 五月婷婷综合激情 | 国产91aaa | 成人免费看电影 | 亚洲欧美日韩一级 | 欧美日韩不卡在线观看 | 色婷婷综合激情 | 九色91在线| 欧美日高清视频 | 亚洲高清激情 | 99久久成人 | 欧美性生活小视频 | 久久99久久99精品免观看粉嫩 | 成人免费视频网站在线观看 | 天天爽天天爽 | 成人日韩av | 久久亚洲免费 | 麻豆传媒一区二区 | 中文字幕av日韩 | 99精品视频在线观看播放 | 久久人人爽人人 | 97精产国品一二三产区在线 | 欧美激情精品久久久久 | www黄| 国产又粗又长的视频 | 精品一区久久 | 亚洲天天做 | 天天干天天搞天天射 | 久草视频在线资源站 | 在线免费高清一区二区三区 | 在线av资源| 亚洲精品动漫成人3d无尽在线 | 亚洲精品456在线播放第一页 | 五月婷婷网站 | 成年人视频在线免费观看 | av中文资源在线 | 91精品视频在线免费观看 | 国产丝袜美腿在线 | 四虎在线影视 | 成人一区二区在线 | 日日久视频| 中文字幕免费观看全部电影 | 久久成人资源 | 久久久久久久久久久久久9999 | 日韩一区二区久久 | 日韩黄视频 | 国产一级免费观看 | 91超级碰| 91网站免费观看 | 激情五月婷婷激情 | 中文字幕在线国产 | 在线免费av网 | 911精品视频 | 91亚洲精 | 久久黄色精品视频 | 日本午夜免费福利视频 | 亚洲成人av片在线观看 | 日韩xxxx视频 | 中文字幕av在线免费 | 在线视频久 | 天天综合天天做天天综合 | 在线精品在线 | 狠狠狠色丁香综合久久天下网 | 日韩视频免费观看高清完整版在线 | 99久热在线精品视频 | 激情网站网址 | 久久精品99国产精品亚洲最刺激 | 综合久久影院 | 久色小说 | 日本高清中文字幕有码在线 | 久久久久北条麻妃免费看 | 日本一区二区不卡高清 | 国产视频1| 成人午夜久久 | 日韩在线免费 | 久久一区二区三区日韩 | 四虎视频 | 日韩精品一卡 | 久久精品人人做人人综合老师 | 免费高清在线视频一区· | 国产五月| 日韩亚洲在线 | 国内精品久久久久 | 少妇搡bbbb搡bbb搡忠贞 | 亚洲,国产成人av | 最近中文字幕国语免费高清6 | 亚洲少妇xxxx | 久久高清免费视频 | 国产精品精品久久久久久 | 久草在线看片 | 久久久www成人免费精品 | 精品视频成人 | 激情电影在线观看 | 亚洲黄色片一级 | 精品久久九九 | 综合天天网| 日韩超碰 | 麻豆观看| 2024国产精品视频 | 热久久最新地址 | 成人在线视频在线观看 | 91精品国产综合久久福利不卡 | 久久这里只有精品视频99 | 午夜精选视频 | 国产成在线观看免费视频 | 国产精品99久久久久久有的能看 | 中文在线字幕免费观 | 日韩动漫免费观看高清完整版在线观看 | 欧美午夜视频在线 | 五月天电影免费在线观看一区 | 成人日韩av| 国产精品18久久久久久不卡孕妇 | 香蕉成人在线视频 | 97在线观看 | 日韩欧美有码在线 | 国产va饥渴难耐女保洁员在线观看 | 久久久免费电影 | 久久久久区 | 中文字幕中文字幕在线中文字幕三区 | 日日爱夜夜爱 | 亚洲精品福利在线观看 | 日韩一区视频在线 | 九色一区二区 | 欧美一级片免费观看 | 国产一级大片在线观看 | 992tv在线观看 | 国产免费大片 | 色播五月婷婷 | 久久一区国产 | 亚洲视频专区在线 | 97超碰国产精品 | 免费视频一区 | 日韩高清在线一区二区三区 | 国产亚洲精品久久久久久移动网络 | 欧美激情奇米色 | 一区二区三区四区不卡 | 在线观看视频99 | av激情五月| 中文字幕在线观 | 四虎国产永久在线精品 | 999视频在线播放 | 激情视频一区二区三区 | 久久黄色小说视频 | 97视频久久久 | 国产婷婷久久 | 丁香av | 日女人电影 | 日韩久久精品一区二区三区下载 | 视频91| 日本一区二区不卡高清 | 欧美亚洲专区 | 四虎影视精品成人 | 91精品一区国产高清在线gif | 日韩美在线 | 精品国产区 | 精品无人国产偷自产在线 | 日本字幕网| 国产呻吟在线 | 精品一区二区在线观看 | 亚洲黄色一级电影 | 正在播放国产精品 | 久草在线一免费新视频 | 在线播放视频一区 | 婷婷av色综合 | 久久永久视频 | 免费看三级 | 国产精品乱看 | 热久久视久久精品18亚洲精品 | 久久综合影视 | 国产精品亚 | 在线看黄色的网站 | 91精品福利在线 | 久久精品免费看 | 亚洲91av| 青青草在久久免费久久免费 | 国产91丝袜在线播放动漫 | 成人在线视频免费观看 | 91成人免费看 | 国产18精品乱码免费看 | 久久精品网站免费观看 | 精品国产一区二区三区男人吃奶 | 国产视频 久久久 | 一区二区三区动漫 | 黄av免费| 黄影院| 免费情趣视频 | www.色国产| a天堂最新版中文在线地址 久久99久久精品国产 | 色夜视频 | 97夜夜澡人人双人人人喊 | 91麻豆精品国产91久久久久久久久 | 国产中文欧美日韩在线 | 9999精品视频 | 久草免费色站 | 51久久成人国产精品麻豆 | 日韩av片在线| 久久永久免费 | 91视频高清| 五月在线| 欧美激情精品久久久久久 | 97视频免费在线观看 | 日日麻批40分钟视频免费观看 | 五月婷婷六月丁香 | 欧美一区二区三区四区夜夜大片 | www色综合 | 在线观看国产 | 久久久www成人免费精品张筱雨 | 日韩大片在线播放 | 亚洲精品黄网站 | 亚洲国产资源 | 丁香五月网久久综合 | 亚洲欧美偷拍另类 | 国产精品电影在线 | 92av视频 | 精品久久福利 | 亚洲精品乱码久久久久久蜜桃欧美 | 久久久久久久久黄色 | 久久精品永久免费 | 中文字幕日韩免费视频 | 色婷婷久久一区二区 | 国产剧情在线一区 | japanesexxxxfreehd乱熟 | 午夜久久网| a视频免费 | 亚洲成人免费 | 国产日本亚洲高清 | 亚洲免费视频观看 | 久草在线久草在线2 | 欧美成人久久 | 欧美一区,二区 | 婷婷在线免费视频 | 亚洲天堂精品视频 | 精品久久久久久久 | 亚洲精品影视 | 国产精品女人网站 | 亚洲资源在线网 | 91网页版免费观看 | 国产麻豆剧果冻传媒视频播放量 | 9999在线| 精品视频在线视频 | av软件在线观看 | 三上悠亚一区二区在线观看 | 韩国精品视频在线观看 | 成人免费网站在线观看 | 亚洲专区路线二 | 国产精品一区二区免费看 | 奇米网网址 | 色综合夜色一区 | av中文字幕网 | 中文字幕免费高清在线观看 | 日本黄色免费大片 | 在线亚洲人成电影网站色www | 成人在线一区二区 | www.久久久 | 午夜精品视频一区二区三区在线看 | 91色国产| 亚洲精品动漫在线 | www.成人精品| 国产成人精品一区二区三区免费 | 国内精品久久久久久久久久久久 | 日韩av一区二区三区 | 国产精品99久久99久久久二8 | 日日弄天天弄美女bbbb | 国产热re99久久6国产精品 | 五月婷在线视频 | 成年人看片网站 | 五月天最新网址 | 亚洲男男gaygay无套同网址 | 亚在线播放中文视频 | 夜夜躁日日躁狠狠久久av | 亚洲精品麻豆视频 | 国产免费xvideos视频入口 | 深爱激情五月综合 | 五月婷婷综合在线 | 色资源网在线观看 | 亚洲aⅴ乱码精品成人区 | 91高清免费| 国产999精品久久久影片官网 | 在线看毛片网站 | 久久激情网站 | 欧美日韩国产伦理 | 在线国产精品一区 | 精品国产诱惑 | 狠狠做深爱婷婷综合一区 | 午夜12点 | 久草在线官网 | 日本久久高清视频 | 亚洲黄色小说网址 | 欧美最猛性xxxxx(亚洲精品) | 在线天堂视频 | 91一区二区三区久久久久国产乱 | 在线观看精品视频 | 69精品视频在线观看 | 中文字幕在线视频一区 | 国产精品自拍av | 麻豆久久一区 | 一二三精品视频 | 精产嫩模国品一二三区 | 欧美大片aaa | 天天爱天天射天天干天天 | 激情五月综合网 | 天天干天天做天天操 | 国产成人精品一区二区在线观看 | 久久影视一区二区 | 在线精品视频免费播放 | 99久久久久久久久 | 在线观看免费 | 国产中文字幕91 | 亚洲国产精品人久久电影 | 国产精品乱码一区二区视频 | 久久成人人人人精品欧 | 久久精品影片 | 国产精品成人av电影 | 日本夜夜草视频网站 | 国产精品久久毛片 | 999视频在线播放 | 午夜色婷婷 | 日韩欧在线 | 丁香色婷 | 国产91av视频在线观看 | 国产一区二区成人 | 美女网站一区 | 激情av在线播放 | 高清免费在线视频 | 少妇bbb搡bbbb搡bbbb| 天天做日日爱夜夜爽 | 久久国产精品视频免费看 | 亚洲成人xxx| 91av影视 | 中文字幕欧美日韩va免费视频 | aaa黄色毛片 | 综合久久五月天 | 久久精品国产亚洲精品 | 国产一区二区三区高清播放 | 韩国av免费在线 | 中文字幕欧美日韩va免费视频 | 不卡av在线播放 | 日韩久久午夜一级啪啪 | 黄色网址国产 | 婷婷丁香久久五月婷婷 | 亚洲精品美女在线观看 | 国产99爱 | 日韩r级在线 | 人人爽人人舔 | 日韩欧美视频在线免费观看 | 欧美一区二区三区在线播放 | 99这里有精品 | 国产精品久久久久一区二区国产 | 亚洲在线黄色 | 日韩影片在线观看 | 午夜av在线免费 | 天天操天天艹 | 亚洲综合导航 | 黄色www | 奇米影视999 | 国产精品久久久久久久久久东京 | 99精品免费视频 | 在线看片a| 亚洲高清视频在线观看免费 | 国产精品日韩在线播放 | 黄色福利视频网站 | 亚洲欧美视频 | 久久国产精品小视频 | 日韩高清黄色 | 青草视频在线免费 | 国产精品青青 | 一区二区成人国产精品 | 精品久久久久一区二区国产 | 人人狠| 日本久久久久久久久久 | 久久久久久久久久久久99 | 久久综合久久伊人 | 欧美日韩国产精品爽爽 | www.久久久com| 日本久久91 | 日日躁夜夜躁aaaaxxxx | 在线免费观看的av网站 | 精品国内自产拍在线观看视频 | 日日夜夜天天人人 | 欧美日韩在线播放一区 | 99精品国产在热久久 | 久久久久久久久久久久久久免费看 | 在线观看亚洲国产精品 | 久久精品国产成人 | 91视频国产高清 | 激情综合中文娱乐网 | 五月天av在线 | 久久精品久久久精品美女 | av成人黄色 | 国内99视频 | www夜夜操com | 成人在线一区二区 | 91av片| 综合天天 | 久久久午夜精品理论片中文字幕 | 国产亚洲婷婷 | 精品国产久| 久久超级碰视频 | 久久精品国产一区 | 蜜臀av性久久久久蜜臀av | 天天操夜夜操天天射 | 2021国产精品| 成人a视频片观看免费 | 国产色爽 | av看片网 | 国产精品免费视频一区二区 | 国产精品岛国久久久久久久久红粉 | 91av视频免费观看 | 女人魂免费观看 | 久久午夜色播影院免费高清 | 粉嫩一二三区 | 福利区在线观看 | 久久伊人国产精品 | 久草在线视频免赞 | 免费网站看v片在线a | 国产男女无遮挡猛进猛出在线观看 | 国产高清一 | 黄色性av | 免费看网站在线 | 欧美日本啪啪无遮挡网站 | 亚洲一区免费在线 | 国产精品九色 | 在线视频一区二区 | 亚洲视频综合在线 | 欧洲精品二区 | www.天天色.com| 狠狠色丁香婷婷综合基地 | 四虎成人av| 亚洲国产福利视频 | 色在线视频网 | 亚洲a在线观看 | 五月婷婷丁香激情 | 久草视频在线免费播放 | 国产资源网 | 在线观看精品国产 | 伊人亚洲精品 | 欧美日韩观看 | 国产亚洲精品成人av久久影院 | 欧美日韩首页 | 日本在线视频一区二区三区 | 国产精品二区在线观看 | 欧美一级久久 | 日韩高清一二区 | 日本中文在线 | 国产一区二区精品91 | 国产一级不卡视频 | 91视频在线国产 | 中文字幕免费观看视频 | 色婷婷成人网 | 日韩在线观看你懂的 | 在线亚洲小视频 | 国产在线观看你懂得 | 六月激情网 | 国产在线精品国自产拍影院 | 国产美女网站视频 | 日韩手机视频 | 五月天六月色 | 久久免费视频在线观看6 | 人人爱人人做人人爽 | 中文字幕有码在线播放 | 久久久麻豆视频 | 久久成视频 | 日韩精选在线观看 | 狠狠精品 | 手机看片 | 黄色影院在线播放 | 亚洲精品在线资源 | 91香蕉视频在线下载 | 久久久久久毛片精品免费不卡 | 免费在线观看成人小视频 | 99国内精品久久久久久久 | 国产精品成人一区 | 亚洲欧美国产精品久久久久 | 亚洲婷婷伊人 | 国产精品大片 | 久久国产成人午夜av影院宅 | 日韩高清不卡在线 | 欧美亚洲国产精品久久高清浪潮 | 国产人成看黄久久久久久久久 | 97精品视频在线播放 | 99爱在线观看 | 国产一级二级三级在线观看 | 亚洲精品久久久久中文字幕二区 | 欧美日韩久久久 | 麻豆视频入口 | 丁香婷五月 | 免费观看91视频 | 日韩专区在线观看 | 99热精品久久 | 国产欧美中文字幕 | 国际精品久久久 | 国产精品一区二 | 成年人在线免费看视频 | 丁香久久| 亚洲黄色在线免费观看 | 最近中文字幕在线 | 国产视频精品视频 | 久久综合毛片 | 中文字幕一区二区三区在线观看 | 亚洲免费高清视频 | 天天操天天弄 | 久久综合九色综合久99 | 中文字幕在线观看你懂的 | 欧美激情在线网站 | 精品色999 | 亚洲精品tv| 欧美91精品久久久久国产性生爱 | 免费看成人a | av一区二区三区在线播放 | 黄色动态图xx | 丰满少妇高潮在线观看 | 国产精品嫩草在线 | 精品国产乱码一区二 | 久久久久久久国产精品影院 | 欧美在线观看视频 | 在线免费91 | 国产老太婆免费交性大片 | 9ⅰ精品久久久久久久久中文字幕 | 日韩夜夜爽 | a在线一区| 在线观影网站 | 国产精品一区二区视频 | 在线看国产日韩 | 久久久国产一区二区三区 | 中日韩在线视频 | 婷婷日韩| 午夜精品一二三区 | 香蕉视频网址 | 国产精品久久久久久久妇 | 美女视频久久久 | 视频在线观看国产 | 中文字幕一二三区 | 亚洲 中文 在线 精品 | 国产 日韩 在线 亚洲 字幕 中文 | 99综合电影在线视频 | 五月婷在线 | 色婷婷亚洲婷婷 | 麻豆视频大全 | 在线a视频免费观看 | 最新真实国产在线视频 | 欧美成人黄色片 | 久久久午夜视频 | 亚洲午夜精品电影 | 久久综合福利 | 国产色道 | 免费男女羞羞的视频网站中文字幕 | 91福利专区 | 亚洲激情 | 亚洲第一av在线播放 | 国产精品手机在线播放 | 日本在线成人 | 亚洲第五色综合网 | 亚洲国产欧美一区二区三区丁香婷 | 91爱爱电影 | 日韩午夜在线播放 | 成年人国产在线观看 | 91麻豆免费版 | 午夜精品视频免费在线观看 | 久久精品婷婷 | 天天爱天天色 | 国产在线观看99 | 911国产精品| 九九九九精品 | 黄色av成人在线观看 | 久久精品99视频 | 97成人啪啪网 | 国产露脸91国语对白 | 精选久久 | 毛片视频网址 | av黄色成人 | www.五月婷婷.com | 国产小视频你懂的在线 | 四虎影视精品永久在线观看 | 国产精品一区二区三区在线免费观看 | 国产999精品久久久影片官网 | 五月综合色 | 久久久精品成人 | 在线视频 影院 | 色综合久久久久久中文网 | 亚洲精品在线一区二区 | 在线观看视频中文字幕 | 99久久精品免费看国产一区二区三区 | 成人丁香花 | 亚洲人视频在线 | 久久精品亚洲精品国产欧美 | 亚洲精品乱码久久久一二三 | 中文字幕资源在线 | 久久久久一区二区三区四区 | 久久久蜜桃一区二区 | 久久国产高清 |