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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

数据结构专题

發布時間:2023/12/4 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据结构专题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

  • Stack
  • 單調棧:
  • 一個序列有多少出棧順序:
  • Queue
  • Map
  • 鏈表
  • 哈希表
  • 并查集
  • 樹狀數組
  • 區間最大
  • 線段樹
  • 區間操作
  • 二叉搜索樹
  • 快排
  • 平衡樹- treap
  • 拓撲排序
  • 最短路
        • 1.floyed
        • 2.dijkstra
        • 3.bellman_ford
        • 4.SPFA
  • 函數、公式

Stack

stack<int> s; s.push();//向棧頂添加元素 s.pop();//從棧頂移除一個元素 s.top();//返回棧頂元素 s.empty();//判斷堆棧是否為空 s.size();//返回棧的大小

單調棧:

#include<stack> #include<vector> ll n,h,ans,th,tw,w; int main() {while(scanf("%lld",&n)) {if(!n)break;stack<pair<ll,ll> >stk;ans=0;for(int i=0; i<n; i++) {scanf("%lld",&h);w=0;while(!stk.empty()&&stk.top().first>=h) {th=stk.top().first;tw=stk.top().second;stk.pop();w+=tw;ans=max(ans,th*w);}stk.push(make_pair(h,w+1));}w=0;while(!stk.empty()) {ans=max(ans,stk.top().first*(w+stk.top().second));w+=stk.top().second;stk.pop();}printf("%lld\n",ans);}return 0; }

一個序列有多少出棧順序:

#include<queue> #include<stack> using namespace std; const int N=1e5+10; int a[10],n; stack<int>s; queue<int>q; bool check(queue<int>q)///判斷是否滿足要求 {for(int i=1; i<=n; i++){s.push(a[i]);///棧不為空&&棧頂元素和隊列首元素相同while(!s.empty()&&q.front()==s.top()){s.pop();///出棧q.pop();///出隊列}}if(!s.empty())///判斷棧中是否還有元素return false;///有元素,說明不是出棧順序return true;///沒有,則說明是出棧順序 } int main() {int k=1;///記錄全排列的個數printf("請輸入入棧長度\n");scanf("%d",&n);printf("請輸入入棧順序\n");for(int i=1; i<=n; i++)scanf("%d",&a[i]);sort(a+1,a+n+1);///全排列排序do{printf("Case %d:",k++);///第k個全排列for(int i=1; i<=n; i++){printf("%d ",a[i]);q.push(a[i]);///全排列的一種入隊}printf("\n");if(check(q))///判斷入棧序列的全排列是否是出棧順序printf("是出棧順序\n");else printf("不是出棧順序\n");}while(next_permutation(a+1,a+n+1)); ///全排列函數調用return 0;}

Queue

///基本操作:push();pop();front(隊首);back(隊尾);empty();size(); ///priority_queue(優先隊列) ///出隊時,并非按先進先出的原則,而是將當前隊列中最大的元素出隊(默認由大到小排序)。可以重載"<"操作,重新定義 //結構體重載: struct node {string name;float score;bool operator < (const node &a) const {return a.score<score;} } int main() {priority_queue<node>pq;return 0; } ///非結構體重載: struct myComp() {bool operator () (const int &a,const int &b) {///由小到大排列采用">";有小到大排列采用"<"return a>b;} } int main() {priority_queue<int,vector<int>,myComp>pq;return 0; }
  • priority_queue
priority_queue< type, container, function > ///默認是一個最大堆

type:數據類型;(不可省)
container:實現優先隊列的底層容器;

function:元素之間的比較方式; //構造一個空的優先隊列(此優先隊列默認為大頂堆) priority_queue<int> big_heap; //另一種構建大頂堆的方法 priority_queue<int,vector<int>,less<int> > big_heap2; //構造一個空的優先隊列,此優先隊列是一個小頂堆 priority_queue<int,vector<int>,greater<int> > small_heap; priority<node>pq_node //node為結構體,可以自定義優先級 struct node{int x, y;friend bool operator < (node a, node b){return a.x > b.x; //結構體中,x小的優先級高} } #include <functional>

Map

每個關鍵字只能出現一次,根據key值快速查找記錄,查找的復雜度基本是Log(N)
插入元素:

map<int, string> mapStudent; // 定義一個map對象 //用insert函數插入pair mp.insert(pair<int, string>(000, "student_zero")); //用insert函數插入value_type數據 mp.insert(map<int, string>::value_type(001, "student_one")); mp[123] = "student_first";//用"array"方式插入 mp[456] = "student_second";

插入是否成功:

// 構造定義,返回一個pair對象 pair<iterator,bool> insert (const value_type& val); pair<map<int, string>::iterator, bool> Insert_Pair; Insert_Pair = mp.insert(map<int, string>::value_type (001, "student_one")); if(!Insert_Pair.second)cout << ""Error insert new element" << endl;

數據的遍歷:

map<int, string>::iterator it; for(it = mp.rbegin(); it != mp.rend();it++) cout<<it->first<<" "<<it->second<<endl; ///前向迭代器 map<int, string>::reverse_iterator it; for(it = mp.rbegin(); it != mp.rend();it++) cout<<it->first<<" "<<it->second<<endl; ///反相迭代器 for(int i = 1;i <= n;i++) ///注意從1開始cout<<mp[i]<<endl; ///數組的形式

查找并獲取map中的元素
count函數來判定關鍵字是否出現,其缺點是無法定位數據出現位置,
find函數來定位數據出現位置,它返回的一個迭代器,當數據出現時,它返回數據所在位置的迭代器,如果map中沒有要查找的數據,它返回的迭代器等于end函數返回的迭代器。
刪除與清空:

//迭代器刪除 iter = mp.find("123"); mp.erase(iter); //用關鍵字刪除 int n = mp.erase("123"); //如果刪除了會返回1,否則返回0 //用迭代器范圍刪除 : 把整個map清空 mp.erase(mp.begin(), mp.end()); //等同于mp.clear()

map中的swap用法:
swap不是一個容器中的元素交換,而是兩個容器所有元素的交換。
函數:

函數作用
begin()返回指向map頭部的迭代器
clear()刪除所有元素
count()返回指定元素出現的次數
empty()如果map為空則返回true
end()返回指向map末尾的迭代器
rbegin()返回一個指向map尾部的逆向迭代器
rend()返回一個指向map頭部的逆向迭代器
size()返回map中元素的個數
swap()交換兩個map
upper_bound()返回鍵值>給定元素的第一個位置

鏈表

///單鏈表中可以沒有頭結點,但是不能沒有頭指針! ///結構體實現自定義: typedef struct Link {int elem;struct Link *next; } link; link * initLink(); //鏈表插入的函數,p是鏈表,elem是插入的結點的數據域,add是插入的位置 link * insertElem(link * p,int elem,int add); //刪除結點的函數,p代表操作鏈表,add代表刪除節點的位置 link * delElem(link * p,int add); //查找結點的函數,elem為目標結點的數據域的值 int selectElem(link * p,int elem); //更新結點的函數,newElem為新的數據域的值 link *amendElem(link * p,int add,int newElem); void display(link *p);int main() {//初始化鏈表(1,2,3,4)printf("初始化鏈表為:\n");link *p=initLink();display(p);printf("在第4的位置插入元素5:\n");p=insertElem(p, 5, 4);display(p);printf("刪除元素3:\n");p=delElem(p, 3);display(p);printf("查找元素2的位置為:\n");int address=selectElem(p, 2);if (address==-1) {printf("沒有該元素");} else {printf("元素2的位置為:%d\n",address);}printf("更改第3的位置的數據為7:\n");p=amendElem(p, 3, 7);display(p);return 0; } link * initLink() {link * p=(link*)malloc(sizeof(link));//創建一個頭結點link * temp=p;//聲明一個指針指向頭結點,用于遍歷鏈表//生成鏈表for (int i=1; i<5; i++) {link *a=(link*)malloc(sizeof(link));a->elem=i;a->next=NULL;temp->next=a;temp=temp->next;}return p; } link * insertElem(link * p,int elem,int add) {link * temp=p;//創建臨時結點temp//首先找到要插入位置的上一個結點for (int i=1; i<add; i++) {if (temp==NULL) {printf("插入位置無效\n");return p;}temp=temp->next;}//創建插入結點clink * c=(link*)malloc(sizeof(link));c->elem=elem;//向鏈表中插入結點c->next=temp->next;temp->next=c;return p; }link * delElem(link * p,int add) {link * temp=p;//遍歷到被刪除結點的上一個結點for (int i=1; i<add; i++) {temp=temp->next;}link * del=temp->next;//單獨設置一個指針指向被刪除結點,以防丟失temp->next=temp->next->next;//刪除某個結點的方法就是更改前一個結點的指針域free(del);//手動釋放該結點,防止內存泄漏return p; } int selectElem(link * p,int elem) {link * t=p;int i=1;while (t->next) {t=t->next;if (t->elem==elem) {return i;}i++;}return -1; } link *amendElem(link * p,int add,int newElem) {link * temp=p;temp=temp->next;//tamp指向首元結點//temp指向被刪除結點for (int i=1; i<add; i++) {temp=temp->next;}temp->elem=newElem;return p; } void display(link *p) {link* temp=p;//將temp指針重新指向頭結點//只要temp指針指向的結點的next不是Null,就執行輸出語句。while (temp->next) {temp=temp->next;printf("%d",temp->elem);}printf("\n"); }

哈希表

直接定址法
除留余數法(Hash表的最大長度為m,可以取不大于m的最大質數p,然后對關鍵字進行取余運算)

并查集

const int N=2e5+10; int f[N],rankk[N]; int find(int x) {if(f[x]==-1)return x;rankk[x]+=rankk[(f[x])]; /// 由于每條邊帶權,所以把邊權更新, /// 也就是更新間接連接的點;當遞歸到某一層時 /// x還未連接到根節點上所以rank[x]表示的是x到f[x]的距離; /// 經上一步操作,f[x]已經接到根節點上了, /// 即rank[f[x]]表示的是父節點到根節點的距離所以x到根節點的距離就直接 /// 等于rank[x]+rank[f[x]];int t=find(f[x]);return f[x]=t; } int main() {int n,m;while(~scanf("%d %d",&n,&m)){memset(rankk,0,sizeof(rankk));memset(f,-1,sizeof(f));int ans=0;int a,b,sum;for(int i=0; i<m; i++){scanf("%d %d %d",&a,&b,&sum);a--;///區間(0,b)分為(0,a-1)和(a,b);int fx=find(a);int fy=find(b);if(fx!=fy){f[fy]=fx;rankk[fy]=rankk[a]-rankk[b]+sum;///rank[a]表示a到0的和,rank[b]表示a+1到b的和;///rank[fy]表示fx,fy的距離;}else if(rankk[b]-rankk[a]!=sum)ans++;}printf("%d\n",ans);}return 0; }

樹狀數組

int n; int bit_tree[n]; void add(int a,int b){for(int i=a;i<=n;i+=lowbit(i)){bit_tree[i]+=b;} }//這里每次修改的其實是一個后綴 void add_area(int l,int r,int v){add(l,v);add(r+1,-v);//差分后的修改方式,由于只會影響l~r,所以將r后的影響要消除 } int query_pos(int a){int ans=0;for(int i=a;i>0;i-=lowbit(i)){ans+=bit_tree[i];}return ans; }

區間最大

int max_area(int l,int r){int ans=0;while(l<=r){ans=max(ans,val[r]);r--;//每次往后跳一個for(;r-lowbit(r)>=l;r-=lowbit(r)) ans=max(ans,maxv[r]);//看r最多跳到哪里,而不超過l}return ans; } int change_pos(int p,int a){val[p]=a;for(int i=p;i<=n;i+=lowbit(i)){maxv[i]=val[i];//修改的時候重新計算值for(int j=1;j<lowbit(i);j<<=1) maxv[i]=max(maxv[i],maxv[i-j]);} } void init(int p){for(int i=p;i<=n;i+=lowbit(i)) maxv[i]=max(maxv[i],val[p]);//初始化一個位置的值可以這樣寫。 }

線段樹

char str[10]; long long int lazy[400040],sum[400040];///4倍的空間 void build(int l,int r,int o)///建樹 l,r 此節點區間長度 o下標 {if(l==r)///葉節點{scanf("%lld",&sum[o]);///直接賦值return;}int mid=(l+r)>>1;build(l,mid,o<<1);///左build(mid+1,r,o<<1|1);///右sum[o]=sum[o<<1]+sum[o<<1|1];///更新此節點的和 } void pushdown(int o,int l)///o下標 l此節點的區間長度 {if(lazy[o])///如果此時需要更新操作{lazy[o<<1]+=lazy[o];///左lazy[o<<1|1]+=lazy[o];///右sum[o<<1]+=lazy[o]*(l-(l>>1));///更新此時 左 的和sum[o<<1|1]+=lazy[o]*(l>>1);///更新此時 右 的和lazy[o]=0;///此點位置懶惰標記取消 傳到下面兩個節點} } void update(int x,int y,int l,int r,int o,int c)///update(l,r,1,n,1,c); {///x,y操作區間 l,r樹的范圍 o下標 c具體操作(+c)if(x<=l&&y>=r)///操作區間全在樹的范圍內{sum[o]+=(r-l+1)*c;///對此時sum[o]進行更新操作lazy[o]+=c;///并懶惰標記return ;}pushdown(o,r-l+1);///不符合 就push懶惰標記int mid=(l+r)>>1;if(x<=mid)update(x,y,l,mid,o<<1,c);///更新左if(y>mid)update(x,y,mid+1,r,o<<1|1,c);///更新右sum[o]=sum[o<<1]+sum[o<<1|1];///更新此節點的和 } long long int query(int x,int y,int l,int r,int o) {///x,y操作區間 l,r樹的范圍 o下標if(x<=l&&y>=r)///全包含 就輸出此時區間的和return sum[o];pushdown(o,r-l+1);///懶惰標記函數int mid=(r+l)>>1;long long sum=0;///long long型if(x<=mid)sum+=query(x,y,l,mid,o<<1);///說明 樹的左邊與操作區間有交集if(y>mid)sum+=query(x,y,mid+1,r,o<<1|1);///o<<1|1 位運算比+-快return sum; } int main() {int n,m;while(~scanf("%d %d",&n,&m)){memset(lazy,0,sizeof(lazy));memset(sum,0,sizeof(sum));build(1,n,1);///建樹while(m--){int l,r,c;scanf("%s",&str);///字符串避免回車符if(str[0]=='Q'){scanf("%d %d",&l,&r);printf("%lld\n",query(l,r,1,n,1));///查詢函數}else{scanf("%d %d %d",&l,&r,&c);update(l,r,1,n,1,c);///操作更新函數}}}return 0; }

區間操作

題意:給定n個線段,線段可以相交,第i個線段覆蓋的區間為[li,ri],問最少刪除多少個線段讓覆蓋每個點的線段數量小于等于k。

#include<vector> #include<set> typedef long long ll; const int N=2e5+10; using namespace std; struct node {int y;int id; }; bool operator<(node a,node b) {if(a.y!=b.y)return a.y<b.y;return a.id<b.id; } vector<node>g[N]; vector<int>a; node q; int main() {int x,y,n,k;scanf("%d %d",&n,&k);for(int i=1;i<=n;i++){scanf("%d %d",&x,&y);q.y=y;q.id=i;g[x].push_back(q);}set<node>s;for(int i=1;i<N;i++){while(s.size()&&(*s.begin()).y<i)s.erase(*s.begin());for(int j=0;j<g[i].size();j++)s.insert(g[i][j]);while(s.size()>k){a.push_back((*s.rbegin()).id);s.erase(*s.rbegin());}}printf("%d\n",a.size());int l=a.size();for(int i=0;i<l;i++)printf("%d%c",a[i],i==l-1?'\n':' ');return 0; }

二叉搜索樹

給定一棵二叉樹的中序遍歷和前序遍歷,請你先將樹做個鏡面反轉,再輸出反轉后的層序遍歷的序列。

#include<bits/stdc++.h> using namespace std; #define N 50 #include<queue> queue<int>qu; int f[N],m[N]; struct node {int l,r; } q[N]; int root; int build(int la,int ra,int lb,int rb) { //mid firstif(la>ra)return 0;int i=0;int rt=f[lb];///find rootwhile(m[i]!=rt)i++;q[rt].l=build(la,i-1,lb+1,lb+i-la);///leftq[rt].r=build(i+1,ra,lb+i-la+1,rb);///rightreturn rt; } void dfs(int root) {if(q[root].l==q[root].r&&q[root].l==0)return ;else {swap(q[root].l,q[root].r);///swapdfs(q[root].l);dfs(q[root].r);} } void bfs(int root) {int flag=0;qu.push(root);while(!qu.empty()) {int x=qu.front();qu.pop();if(!flag)flag=1,cout<<x;else cout<<" "<<x;if(q[x].l!=0)///exist->input queuequ.push(q[x].l);if(q[x].r!=0)qu.push(q[x].r);}cout<<endl; } int main() {int n;cin>>n;for(int i=1; i<=n; i++) {cin>>m[i];}for(int i=1; i<=n; i++) {cin>>f[i];}root=build(1,n,1,n);dfs(root);///swapbfs(root);///inputreturn 0; }

題意:先給一組數據構建一顆二叉搜索樹作為標準樹。然后n組數據,判斷每組數據構成的二叉搜索樹是否和標準樹一樣。
思路:兩棵樹如果一樣的話,就是擁有一樣的節點,在每個節點上具有相同的值。
因此在遍歷二叉樹的時候,每向下移動一個節點時,判斷是否與此時的標準樹一致。

#include<stdio.h> #include<string.h> bool flag; struct node {int val;node *l,*r; }; node *insert(node *p,int x) { ///依次插入每個值if(p==NULL) { ///節點為空,插入node *q=new node;///申請一個動態空間 new nodeq->val=x;///賦值q->l=q->r=NULL;///左右為空return q;///返回此節點地址} else { ///節點不為空 此節點有值if(p->val>x)///當前值小于節點值p->l=insert(p->l,x);///遞歸向下尋找對應位置 回溯賦值elsep->r=insert(p->r,x);return p;} } void check(node *root,node *room) { ///中序遍歷 傳入標準樹和判斷樹的地址if(root!=NULL&&room!=NULL) { ///都不為空 判斷值是否相同check(root->l,room->l);///中序遍歷if(root->val!=room->val)///不一致 標記為0;flag=0;check(root->r,room->r);} else if(root!=NULL||room!=NULL) ///一個為空另一個不為空有節點值 顯然不一致flag=0; } int main() {int n;while(~scanf("%d",&n)&&n) {node *root=NULL;///標準樹 為空char str[20];scanf("%s",str);for(int i=0; i<strlen(str); i++)///構建 標準樹root=insert(root,str[i]-'0');for(int i=0; i<n; i++) {flag=1;///標記node *room=NULL;///判斷樹 為空scanf("%s",str);for(int j=0; j<strlen(str); j++)///構建 判斷樹room=insert(room,str[j]-'0');check(root,room);///中序(左根右)遍歷 判斷兩棵樹是否一致if(flag)printf("YES\n");else printf("NO\n");}}return 0; }

快排

void ksort(int l, int h, int a[]) {if (h < l + 2) {return ;}int e = h, p = l;while (l < h) {while (++l < e && a[l] <= a[p]);while (--h > p && a[h] >= a[p]);if (l < h) {swap(a[l], a[h]);}}swap(a[h], a[p]);ksort(p, h, a);ksort(l, e, a);return ; }

平衡樹- treap

operator 1 : 插入一個數 operator 2 : 刪除一個數 operator 3 : 通過數值找排名 operator 4 : 通過排名找數值 operator 5 : 找到嚴格小于key的最大數(前驅) operator 6 : 找到嚴格大于key的最小數(后繼)const int N = 100010, INF = 1e8 + 7; int n, m; struct node {int l, r;//左右兒子int key;//真正的權值int val;//隨機的平衡因子int cnt;//相同的數有多少個int size;//整棵樹的結點個數 } tr[N];int root, idx; void pushup(int p) {tr[p].size = tr[tr[p].l].size + tr[tr[p].r].size + tr[p].cnt; }int get_node(int key) {tr[ ++ idx].key = key;tr[idx].val = rand();//!堆所維護的val是隨機值,為了讓樹變得更隨機以增加搜索樹效率tr[idx].cnt = tr[idx].size = 1;return idx; }/*!往左遞歸時左兒子val大于根節點val就右旋*/ /*!往右遞歸時右兒子val大于根節點val就左旋*/void zig(int &p) { //右旋int q = tr[p].l;tr[p].l = tr[q].r;tr[q].r = p, p = q;pushup(tr[p].r), pushup(p); }void zag(int &p) { //左旋int q = tr[p].r;tr[p].r = tr[q].l;tr[q].l = p, p = q;pushup(tr[p].l), pushup(p); }void build() {get_node(-INF), get_node(INF);//兩個哨兵邊界root = 1;//-INFtr[root].r = 2;//INFpushup(root);if(tr[1].val < tr[2].val)zag(root);//因為val是隨機的,所以要判斷右兒子(因為當前只有兩個點,只有root右兒子)//如果右兒子隨機到的val大于root就左旋 }/*operator 1 : 插入一個數*/void insert(int &p, int key) {if(!p) p = get_node(key);//如果樹中沒有這個就新建一個結點else if(tr[p].key == key) tr[p].cnt ++ ;else if(tr[p].key > key) { //大就在左邊insert(tr[p].l, key);if(tr[tr[p].l].val > tr[p].val)zig(p);} else { // 否則就在右邊insert(tr[p].r, key);if(tr[tr[p].r].val > tr[p].val)zag(p);}pushup(p); }/*operator 2 : 刪除一個數*/void remove(int &p, int key) { //刪除操作:每次旋轉都會使得它的深度+1,一直旋轉到葉子節點,然后刪除if(!p) return ;if(tr[p].key == key) { //找到了if(tr[p].cnt > 1) tr[p].cnt -- ;else if(tr[p].l || tr[p].r) {//!右旋往右走if(!tr[p].r || tr[tr[p].l].val > tr[tr[p].r].val) {//如果沒有右子樹,右旋一次就到葉子節點了。或者說左子樹隨機到的val > 右子樹隨機到的val,那么必須右旋zig(p);remove(tr[p].r, key);}//!左旋往左走else {zag(p);remove(tr[p].l, key);}} else p = 0; //如果到了葉子節點就直接刪掉} else if(tr[p].key > key) remove(tr[p].l, key); //往左邊找else remove(tr[p].r, key);//往右邊找pushup(p);//每次別忘了pushup,因為本題中維護了一個size }//下面的幾個函數只是查詢不需要修改,所以不用寫&p/*operator 3 : 通過數值找排名 */int get_rank_by_key(int p, int key) {if(!p) return 0;//如果找到了,返回左子樹個數 + 自己(這里不是cnt因為根據題意,要找的排名如果相同就找最左邊的,最小的)if(tr[p].key == key) return tr[tr[p].l].size + 1;if(tr[p].key > key)return get_rank_by_key(tr[p].l, key);return tr[tr[p].l].size + tr[p].cnt + get_rank_by_key(tr[p].r, key); }/*operator 4 : 通過排名找數值 */int get_key_by_rank(int p, int rank) {if(!p) return INF;if(tr[tr[p].l].size >= rank) return get_key_by_rank(tr[p].l, rank);if(tr[tr[p].l].size + tr[p].cnt >= rank)//左邊少加上中間的卻大于rank,說明就在中間return tr[p].key;return get_key_by_rank(tr[p].r, rank - tr[tr[p].l].size - tr[p].cnt);//注意遞歸到右邊時rank要減去左邊的 }/*operator 5 : 找到嚴格小于key的最大數 */int get_prev(int p, int key) {if(!p) return -INF;//!左邊if(tr[p].key >= key) return get_prev(tr[p].l, key);//右邊和中間return max(tr[p].key, get_prev(tr[p].r, key)); }/*operator 6 : 找到嚴格大于key的最小數 */int get_next(int p, int key) {if(!p) return INF;//!右邊if(tr[p].key <= key) return get_next(tr[p].r, key);//左邊和中間return min(tr[p].key, get_next(tr[p].l, key)); }int main() {build();scanf("%d", &n);while(n -- ) {int op, x;scanf("%d%d", &op, &x);if(op == 1)insert(root, x);else if(op == 2)remove(root, x);else if(op == 3)printf("%d\n", get_rank_by_key(root, x) - 1);//因為最前面有一個自己設的哨兵,所以得到的rank比真實的rank大1else if(op == 4)printf("%d\n", get_key_by_rank(root, x + 1));//根據rank找key,前面有一個哨兵,所以rank要從真實的rank+1變成樹里的rankelse if(op == 5)printf("%d\n", get_prev(root, x));else printf("%d\n", get_next(root, x));}return 0; }

拓撲排序

///優先隊列加拓撲排序 入度為零即輸出! int ans[550],ru[550]; int dp[550][550]; int n,m; void toposort() {for(int i=1; i<=n; i++) {for(int j=1; j<=n; j++) {if(dp[i][j])ru[j]++;}}for(int i=1; i<=n; i++) {int k=1;while(ru[k]!=0)k++;ans[i]=k;ru[k]=-1;for(int j=1; j<=n; j++) {if(dp[k][j])ru[j]--;}} }

最短路

1.floyed

void floyed() {for (int k=1;k<=n;k++;)for (int i=1;i<=n;i++)for (int j=1;j<=n;j++)if (dis[i][k]+dis[k][j]<dis[i][j])dis[i][j]=dis[i][k]+dis[k][j]; }

2.dijkstra

其實是貪心,不能有負環,如果源點到某個點的距離是到其他點的距離的最小值,能么就更新。

void dijkstra(int st) {for (int i=1;i<=n;i++)dis[i]=a[st][i];memset(vis,0,sizeof(vis));vis[st]=1;dis[st]=0;for (int i=1;i<n;i++){int minn=99999999;int k=0;for (int j=1;j<=n;j++)if (!vis[j]&&dis[j]<minn){minn=dis[j];k=j;}if (!k)return ;vis[k]=1;for (int j=1;j<n;j++)if (!vis[j]&&dis[k]+a[c][j]<dis[j])dis[j]=dis[k]+a[k][i];} }

3.bellman_ford

求單源點到其他點的最短距離,并判斷是否有負環。 bool bellman_ford() {memset(dis,0,sizeof(dis));dis[st]=0;bool rel=0;for (int i=1;i<=n;i++){rel=0;for (int j=1;j<=sumn;j++)if (dis[a[j].x]+a[j].v<dis[aij].v){dis[a[i].y]=a[j].v+dis[a[j].x];rel=1;}if (!rel)return 0;}return 1; }

4.SPFA

使用鄰接表,優化bellman_ford,節約時間和空間。 void SPFA() {memset(dis,0,sizeof(dis));memset(vis,0,sizeof(vis));dis[s]=0;vis[s]=1;que[1]=s;head=0;tail=1;while (head<tail){int tn=q[++head];vis[tn]=0;int te=link[tn];for (int i=te;i;i=e[i].next){int tmp=e[i].y;if (dis[tn]+e[i].v<dis[tmp]){dis[tmp]=dis[tn]+e[i].v;if (!vis[tmp]){q[++tail]=tmp;vis[tmp]=1;}}}}return ; }

函數、公式

lower_bound( ) 函數返回大于等于x upper_bound( )函數返回大于x

總結

以上是生活随笔為你收集整理的数据结构专题的全部內容,希望文章能夠幫你解決所遇到的問題。

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

国产欧美久久久精品影院 | 午夜精品导航 | 久久久私人影院 | 午夜在线观看一区 | 丁香婷婷久久 | 亚洲综合丁香 | 日韩欧美国产精品 | 91.麻豆视频 | 激情小说网站亚洲综合网 | 国产在线精品一区二区 | 日日夜夜天天 | 国产破处视频在线播放 | 日韩在线国产精品 | 在线欧美a| 国产精品一区久久久久 | 国产精品欧美久久久久无广告 | 不卡的av在线播放 | 国内一级片在线观看 | 精品亚洲va在线va天堂资源站 | 97视频总站| 国产亚洲va综合人人澡精品 | 久久综合九色综合97婷婷女人 | 亚洲成人免费在线 | 制服丝袜欧美 | 成人免费视频观看 | 五月天亚洲综合小说网 | 亚洲午夜久久久久久久久久久 | 欧美精品首页 | 免费在线观看不卡av | 中文字幕乱偷在线 | 欧美一区二区三区四区夜夜大片 | 国产亚洲婷婷 | 国产美女视频免费观看的网站 | 综合色站导航 | 国产 亚洲 欧美 在线 | 91精品国产高清自在线观看 | 在线观看日韩中文字幕 | 麻豆94tv免费版 | 最新av网址在线 | 天天看天天干天天操 | 中文字幕av一区二区三区四区 | 国产精彩视频一区二区 | 日韩欧美在线免费观看 | 国产一区二区综合 | 人人射人人爽 | 午夜丁香视频在线观看 | 久久久香蕉视频 | 在线观看岛国av | 国产三级视频 | 国产精品午夜在线观看 | 99这里有精品 | 中中文字幕av | 81精品国产乱码久久久久久 | 久久视频在线观看 | 午夜12点 | 国产97在线看 | 免费在线激情电影 | 久久综合亚洲鲁鲁五月久久 | 国产精品一区二区在线观看免费 | 久久精品一区二区国产 | 99在线热播 | 狠狠操狠狠干2017 | 亚洲精品视频在线免费 | 国产96在线观看 | 18久久久久| 国产精品久久久久9999 | 超碰在线观看av.com | 蜜桃麻豆www久久囤产精品 | 天堂入口网站 | 91看片在线 | 欧美va天堂va视频va在线 | 国产99久久精品一区二区300 | 欧美色图p | 国产中文字幕在线播放 | 色综合夜色一区 | 97在线精品国自产拍中文 | 在线观看一级视频 | 久久人人添人人爽添人人88v | 国产 欧美 日产久久 | 奇米影音四色 | 99av国产精品欲麻豆 | 久久精品人| 91大片成人网| 天堂av色婷婷一区二区三区 | 夜夜夜影院 | 最近2019年日本中文免费字幕 | 欧美一区三区四区 | 欧美视频18| 精品黄色在线观看 | 草久草久 | 国产一区二区综合 | 天天操天天曰 | 国产高清视频色在线www | 超碰在线人人97 | 久久久久久久久久久久久9999 | 欧美另类交人妖 | www,黄视频 | 欧美精品久久久久久久久久丰满 | 国产精品18久久久久久vr | 国产999精品久久久影片官网 | 日韩电影久久 | 日韩欧美精品一区二区三区经典 | 蜜臀久久99精品久久久酒店新书 | 久草在线免费看视频 | 亚洲欧美日韩一区二区三区在线观看 | 欧美成人69av| 午夜黄网 | 7777精品伊人久久久大香线蕉 | 青青色影院 | 激情网五月天 | 国产精品久久片 | 日本久久久影视 | 中文字幕日韩有码 | 中文字幕在线视频国产 | 亚洲精品国产电影 | 91成人网在线 | 色婷婷激情四射 | 999视频网| 国产黄色一级片 | 日本一区二区三区免费观看 | 国内精品久久久久国产 | 国产一区二区精品91 | 亚洲国产伊人 | 人人插人人看 | 瑞典xxxx性hd极品 | 日本深夜福利视频 | av电影 一区二区 | 久免费| 日韩中文字幕第一页 | 午夜色性片 | 精品一区二区6 | 亚洲精品免费在线观看视频 | 久久久久成人精品亚洲国产 | 99久久影院 | 午夜精品av在线 | 四虎5151久久欧美毛片 | 久久精品一区八戒影视 | 精品免费一区二区三区 | 天天舔天天射天天操 | 成人天堂网 | 亚洲欧美日韩精品久久奇米一区 | 久久精品123 | 深爱婷婷久久综合 | 中文字幕 第二区 | 国产一级免费在线观看 | 日操操| 91精品国产综合久久福利不卡 | 欧美日韩aa | 狠狠操天天干 | 欧美日韩一区二区三区在线免费观看 | 免费国产在线精品 | 亚欧日韩av | 国产99免费| 日本aa在线 | 日韩影视大全 | 精品国产一区二区三区不卡 | 国产精品一区二区美女视频免费看 | 成人av网站在线观看 | 91在线一区二区 | 婷婷六月天丁香 | 国产97视频 | 欧美一级淫片videoshd | 色婷婷成人网 | 天天激情天天干 | 久久久久久久久久亚洲精品 | 九九九九热精品免费视频点播观看 | 亚洲视频精选 | 伊人成人精品 | 超碰在线国产 | 国产精品久久久久久久久久不蜜月 | 国产成人在线播放 | 超碰在线97国产 | 国产精品视频资源 | 在线观看中文字幕第一页 | 丝袜制服综合网 | 国产成人精品福利 | 九色91在线 | 天天色天天射综合网 | 欧美日韩精品免费观看 | 欧美资源在线观看 | 欧美夫妻生活视频 | 久久久91精品国产一区二区精品 | 国产精品免费久久 | 黄色大片免费播放 | 美女视频免费一区二区 | 久久久久亚洲国产 | 在线影院 国内精品 | 成人av午夜 | 日韩中文字幕在线 | 五月婷婷开心 | 精品成人网 | 综合中文字幕 | 一区二区激情视频 | 国产精品一区二区免费视频 | 亚洲午夜久久久久 | 色999在线 | 久久av在线 | 九九热精| 亚洲成年人免费网站 | 久久亚洲影视 | 久久精品二区 | 久久一区精品 | 国产丝袜制服在线 | 黄网站免费大全入口 | 午夜123 | 婷婷激情欧美 | 久久国产精品视频 | 人人干网站 | 久久久www成人免费精品张筱雨 | 精精国产xxxx视频在线播放 | 在线观看精品黄av片免费 | 九九热精品在线 | 国产一区二区在线视频观看 | 国内精品视频一区二区三区八戒 | 天天色天天射天天操 | 中文字幕国产一区二区 | 69久久夜色精品国产69 | 天天爱综合| 97精产国品一二三产区在线 | 亚洲美女久久 | 新版资源中文在线观看 | 激情综合六月 | 成人在线观看资源 | 精品999| 日日操日日 | 香蕉视频免费看 | 中文字幕在线视频一区二区 | 天天在线视频色 | 色综合天天综合网国产成人网 | 伊人黄 | av导航福利 | 999电影免费在线观看 | 欧美极品裸体 | 国产伦理一区 | 国产手机av在线 | 国产精成人品免费观看 | 亚洲欧美日韩在线一区二区 | 婷婷色网 | 久草视频免费播放 | 亚洲五月六月 | 成人黄色片免费 | wwwwww色| 国产成人一区二区在线观看 | 国产a国产 | 一区二区视频在线观看免费 | 91香蕉视频在线 | 久久综合婷婷 | 免费高清在线一区 | 日韩av偷拍 | 久久香蕉电影网 | 亚洲在线视频网站 | 中文字幕乱码日本亚洲一区二区 | 免费欧美精品 | 亚洲国产av精品毛片鲁大师 | 国产亚洲视频在线免费观看 | 国产日韩欧美网站 | 亚洲 欧洲 国产 日本 综合 | freejavvideo日本免费 | 亚洲欧洲国产视频 | 手机成人在线 | 久久久久久久久久久久电影 | 日本超碰在线 | 日韩久久在线 | 免费看久久久 | 99国产视频 | 国产精品久久一区二区无卡 | 色福利网站| 国产精品久久久久久久久久尿 | 黄色在线成人 | 三级av黄色 | 国产香蕉97碰碰碰视频在线观看 | 97日日碰人人模人人澡分享吧 | 欧美激情h| 蜜臀久久99精品久久久久久网站 | 国产亚洲精品女人久久久久久 | 在线观看不卡视频 | 亚洲免费不卡 | 99re6热在线精品视频 | 国产黄免费在线观看 | 国产精品久久久久久麻豆一区 | avhd高清在线谜片 | 国产精品毛片完整版 | 久久国产色 | 欧美日韩在线免费观看视频 | 色999精品 | 在线观看岛国av | 亚洲激情在线观看 | 91在线在线观看 | 国产一区二区三区久久久 | 五月婷婷视频 | 久久精品韩国 | 九九久久电影 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 国产精品视频久久 | 人人草人人草 | 国产又粗又猛又爽又黄的视频先 | 欧美a级一区二区 | 尤物97国产精品久久精品国产 | 国产美女视频一区 | 日韩在线观看你懂的 | 综合天堂av久久久久久久 | 一级片免费观看视频 | 欧美日韩久久不卡 | 日韩成人精品一区二区 | 成人中文字幕在线观看 | 亚洲黄色一级电影 | 天天操天天操天天操天天操 | 精品综合久久 | 午夜av网站 | 午夜12点| 亚洲精品人人 | 超碰免费久久 | 激情久久伊人 | 久久九九精品久久 | 国产婷婷精品av在线 | 日韩美女av在线 | 日韩免费一级a毛片在线播放一级 | 香蕉视频在线观看免费 | 91精选在线 | 久久精品系列 | 国语精品久久 | 国产精品女人久久久久久 | www91在线观看 | 97干com| 欧美精品少妇xxxxx喷水 | 国产精品一区二区三区电影 | 亚州精品成人 | 欧美日韩不卡在线视频 | 国产精品久久av | 天天操天天操天天操天天操天天操 | 精品成人久久 | 在线天堂亚洲 | 欧美日韩亚洲在线观看 | 99视频在线观看免费 | 国产手机在线观看 | 久久精品日本啪啪涩涩 | 99久久精品免费看国产免费软件 | 亚洲经典在线 | 中文字幕av免费 | 国产日产精品一区二区三区四区的观看方式 | 国产精品一区二区免费视频 | 欧美日韩在线电影 | 天天色视频 | 亚洲人成免费网站 | 国产日韩欧美视频在线观看 | 精品国产乱码久久久久久浪潮 | 日韩中文字幕在线不卡 | 免费看的黄色小视频 | 精品国产1区2区 | 中文字幕免费观看 | 日韩av电影网站在线观看 | 欧美日韩高清一区二区三区 | 国产精品毛片一区视频播 | 91免费网| 久久国产a | 欧美一级专区免费大片 | 欧美一区二视频在线免费观看 | 亚洲九九九在线观看 | 国产精品黄色 | 日韩在线观看av | 国产亚洲精品综合一区91 | 五月婷婷丁香 | 天天看天天干天天操 | 欧美日韩视频在线观看免费 | 午夜精品电影一区二区在线 | 日本九九视频 | 最近高清中文字幕在线国语5 | 国产成人精品一区二区三区在线观看 | 欧美大码xxxx | 欧美另类成人 | 日韩久久久久久久久久 | 中文字幕在线日本 | 午夜视频在线观看一区二区三区 | 亚洲黑丝少妇 | 蜜桃视频精品 | 欧美日韩国产mv | 日韩欧美在线不卡 | 免费av大片 | 六月丁香婷婷网 | 色综合天天视频在线观看 | 91麻豆精品国产91久久久无需广告 | 在线有码中文字幕 | 91福利试看 | 中文字幕在线观看91 | 色亚洲激情| 成人av在线网址 | 亚洲 中文字幕av | 一区二区三区中文字幕在线 | 亚洲欧美偷拍另类 | 国色天香在线观看 | 日韩一区精品 | 日韩一二三 | 免费av电影网站 | 日韩在线三级 | av在线播放快速免费阴 | 国产视频在 | 久久久精品国产一区二区电影四季 | 国产成年免费视频 | 日日操夜夜操狠狠操 | 2018亚洲男人天堂 | 91亚洲国产成人久久精品网站 | 在线韩国电影免费观影完整版 | 日韩网站在线播放 | 亚洲精品在线视频播放 | 免费91麻豆精品国产自产在线观看 | 久久精品a | 久久99精品国产麻豆宅宅 | 色综合www | 亚洲成人二区 | 婷婷综合av| 韩国视频一区二区三区 | 日韩色在线观看 | 久久久久亚洲精品男人的天堂 | 欧美特一级 | 天天操天天干天天综合网 | 亚洲精品久久久久久中文传媒 | 精壮的侍卫呻吟h | 999久久久免费精品国产 | 中文字幕一区二区三区四区视频 | 成人av电影在线观看 | 波多野结衣在线视频免费观看 | 毛片网站在线观看 | 日韩网站一区 | 99r在线播放 | av中文字幕av | 亚洲国产精品资源 | 久久五月婷婷丁香社区 | 中文字幕免费在线 | 精品久久久久一区二区国产 | 国内精品久久影院 | 久久视频在线看 | 国产一区视频免费在线观看 | 日韩中文字幕免费在线播放 | 一级片在线| 美州a亚洲一视本频v色道 | 成人午夜影院在线观看 | 日本在线观看中文字幕 | 国产精品视频最多的网站 | 中文字幕一区2区3区 | 天天干,天天干 | 日本精品一二区 | 国内少妇自拍视频一区 | 99久热在线精品 | 亚洲精品美女久久久久 | 亚洲综合欧美精品电影 | 欧美精品在线观看免费 | 欧美粗又大 | 九九国产精品视频 | 免费观看日韩av | 在线观看中文字幕第一页 | 最近高清中文在线字幕在线观看 | 国产毛片在线 | 91伊人影院 | 一区二区三区国产欧美 | 手机在线黄色网址 | 日夜夜精品视频 | 成人h电影在线观看 | 日本一区二区三区免费观看 | 国产成人精品999 | 亚洲美女视频网 | 国产午夜一级毛片 | 91精品国产自产老师啪 | 丁香五婷| 韩国av免费观看 | 日韩欧美精品在线 | 久草视频免费在线播放 | 一本一本久久a久久 | 久久久九九 | 综合伊人久久 | 国产亚洲精品v | 国产精品麻豆视频 | 中文字幕 国产 一区 | 三级黄色网址 | 丁香5月婷婷久久 | 日韩免费av网址 | 91在线麻豆| 黄色中文字幕 | 久久综合狠狠狠色97 | 中文字幕在线国产精品 | 欧美a√大片| 亚洲精品欧洲精品 | 婷婷久久一区二区三区 | 天天操天天弄 | av经典在线| 欧美一二三视频 | 日韩动态视频 | 久久99婷婷 | 日韩在线免费视频观看 | 国产视频在线观看一区 | 99视频 | 日韩欧美精品在线视频 | 久久视频网 | 欧美一区免费在线观看 | 九九热只有这里有精品 | 992tv在线成人免费观看 | 免费的国产精品 | 一区二区视频电影在线观看 | www.av免费观看 | 日韩毛片一区 | 中文字幕在线视频国产 | 欧美精品国产精品 | 日韩精品在线视频 | 国产精品久久影院 | 在线精品在线 | 四虎成人在线 | 特级毛片网 | www.久草视频 | 色综合 久久精品 | 成人动漫一区二区三区 | 精品国产一区二区三区久久久 | 狠狠色免费 | 一级片免费视频 | 亚洲一区av | 国产亚洲精品久久久网站好莱 | 久久看片网 | 三级黄色片子 | 国产一二三在线视频 | 综合色中文 | 涩涩爱夜夜爱 | 91精品国产自产在线观看永久 | 久久久久9999亚洲精品 | 亚洲精品系列 | 久久综合一本 | 一区二区三区动漫 | 成年人天堂com | 五月激情久久 | 欧美精品第一 | 天天色综合久久 | 欧美三级免费 | 久久福利在线 | 人人涩 | 久久九九影院 | 成人免费视频网站在线观看 | 亚洲精品国产精品乱码在线观看 | 9999在线视频| 婷婷www| 亚洲三级毛片 | 国产成人免费观看 | 国产精品视频全国免费观看 | 97爱 | 韩国av三级 | 天天天天天天操 | 少妇bbw搡bbbb搡bbb | 精品视频国产一区 | 九九日韩 | 毛片在线网 | 99色亚洲 | 色午夜| 欧美日韩国产免费视频 | 免费观看一区二区 | 五月天免费网站 | 色亚洲网 | 国产欧美日韩精品一区二区免费 | 人人爽人人爽av | 我要看黄色一级片 | 国产精品18videosex性欧美 | 91日本在线播放 | 亚洲在线成人精品 | 91亚洲精品乱码久久久久久蜜桃 | 国产高清精品在线 | 久久久久久免费 | 美女网站在线 | 亚洲天天综合 | 国产精品综合在线 | 日韩中午字幕 | 日日干综合 | 亚洲日本va午夜在线影院 | 91在线最新| 日韩精品中字 | 国产精品久久久久久麻豆一区 | 91精品一区二区三区蜜桃 | 超碰在线免费福利 | 国产人在线成免费视频 | 97精品国产91久久久久久久 | 九九九九九九精品任你躁 | 亚洲天堂激情 | 成人免费观看网站 | 少妇视频一区 | 黄色在线看网站 | 午夜视频黄 | 国产视频在线观看一区 | 精品国产伦一区二区三区观看体验 | 在线播放视频一区 | 国产成视频在线观看 | 成人免费视频播放 | 日本一区二区三区免费看 | 午夜精品久久久久久久99婷婷 | 51久久夜色精品国产麻豆 | 狠狠做深爱婷婷综合一区 | 国产高清在线免费观看 | 日韩高清激情 | 色婷婷视频 | 色婷婷免费 | 色婷婷久久久综合中文字幕 | 欧美国产日韩一区二区三区 | 不卡av电影在线 | 久久日韩精品 | 国产1区2区3区精品美女 | 亚洲日本在线视频观看 | 射久久 | 国产一二三四在线观看视频 | 久久久999精品视频 国产美女免费观看 | 色婷婷福利视频 | 成人黄视频 | 亚洲作爱 | 欧美一二三在线 | 在线观看的av网站 | 综合久久五月天 | 亚洲精品黄色 | 国产97免费 | 久久99在线| a黄色| 天天干天天做天天爱 | 奇人奇案qvod | 亚洲欧美视频在线播放 | 国产精品videossex国产高清 | 在线观看亚洲电影 | 亚洲国产精品电影在线观看 | 免费日韩精品 | 欧美精品一区二区免费 | 成人国产精品免费观看 | 六月激情婷婷 | 日本午夜免费福利视频 | 日韩在线二区 | 婷婷丁香在线视频 | 丰满少妇一级 | 国产91学生粉嫩喷水 | 91视频观看免费 | 成人免费中文字幕 | 日本系列中文字幕 | www狠狠| 91亚洲在线| 高清在线一区二区 | 成人一区影院 | 亚洲视频axxx | 五月天激情综合 | www.久久精品视频 | 欧洲亚洲女同hd | 热99在线视频 | 天天插天天干 | 免费av成人在线 | 97小视频| 黄色av影院| 亚洲精品久久久蜜桃直播 | 亚洲男人天堂2018 | 夜夜操天天操 | 正在播放国产一区二区 | 欧美一区二区在线看 | 啪啪免费视频网站 | 午夜精品久久久久久久99水蜜桃 | 激情综合站 | 午夜精品区 | 国产高清在线免费视频 | 99视频免费播放 | 中文字幕在线播放av | 中文字幕在线观看亚洲 | 国产成人一级电影 | 中文字幕在 | 精品欧美一区二区三区久久久 | av电影免费在线 | 日韩精选在线观看 | 久久人人爽 | 五月开心六月伊人色婷婷 | 精品久久久久久久久亚洲 | 99r在线观看 | 91视频麻豆 | 国产一级在线 | 中文乱幕日产无线码1区 | 精品无人国产偷自产在线 | 人人干人人草 | 国产女人18毛片水真多18精品 | 人人澡人人添人人爽一区二区 | 亚洲成人av片在线观看 | 日本中文字幕在线一区 | 国产麻豆电影在线观看 | 日本在线精品视频 | 亚洲欧洲精品一区二区精品久久久 | 超碰在线91 | 五月婷婷丁香综合 | 国产美女视频一区 | 在线观看成人网 | 97在线免费观看视频 | 岛国精品一区二区 | 午夜av在线 | 国产在线观看你懂的 | 国产成人三级在线观看 | 天堂av免费看 | 91日韩在线 | 久久综合九色综合久99 | 日韩理论片 | 久久超碰99| 成人午夜黄色影院 | 麻豆91网站 | 中文字幕在线免费看线人 | 999国产精品视频 | 国产不卡av在线 | 色婷婷六月天 | 日韩高清毛片 | 亚洲精品一区二区精华 | 黄网站色 | 99综合电影在线视频 | 波多野结衣在线观看一区二区三区 | 在线免费高清一区二区三区 | 在线看日韩av | 综合天天色| 久久亚洲婷婷 | 国产精品美女免费视频 | 在线观看黄网站 | 久久av中文字幕片 | 久久亚洲美女 | www..com黄色片 | 国产精品一区在线 | 在线免费色视频 | 四虎影视成人永久免费观看亚洲欧美 | 久久久久久久国产精品影院 | 91精品免费在线观看 | 国产美女无遮挡永久免费 | 国产午夜免费视频 | 天天艹天天干天天 | 黄色三级网站 | 99热99re6国产在线播放 | 丁香花中文字幕 | 久久精品女人毛片国产 | 精品国产乱码久久久久 | 麻豆视频大全 | 国产福利91精品张津瑜 | 99久久婷婷国产精品综合 | 99日韩精品| 九九热只有这里有精品 | 91av99| 国产精华国产精品 | 又黄又刺激视频 | 亚洲精品美女久久 | 狠狠做深爱婷婷综合一区 | 色a在线观看| 国产精品久久久久久久免费大片 | 国产玖玖精品视频 | 91色九色| 久久国产精品成人免费浪潮 | 狠狠久久 | 国产福利精品视频 | 日韩欧美电影网 | 久久久久久久久久久久久国产精品 | 国内成人精品2018免费看 | 久草视频精品 | 99日精品 | 国产免费视频一区二区裸体 | 国产成人精品999 | 久久久久久久久网站 | 黄色三级视频片 | 亚洲九九爱 | 最新亚洲视频 | 91tv国产成人福利 | 夜夜夜夜猛噜噜噜噜噜初音未来 | 日韩精品三区四区 | 久久久毛片 | 色婷婷欧美 | 久久久久激情 | 国产精品成人免费精品自在线观看 | 日韩成人黄色av | 色av婷婷 | 亚洲欧美综合精品久久成人 | 婷婷丁香九月 | 久久久福利视频 | 伊人婷婷网 | 在线免费成人 | 天堂av在线中文在线 | 天天插天天色 | 四虎成人免费观看 | 亚洲成人免费在线观看 | 精品在线观看国产 | 中文字幕一区二区三区在线播放 | 日韩免费区 | 国产视频一区二区在线观看 | 四虎在线免费观看 | 日本中文字幕一二区观 | 久久不射电影院 | 亚洲伊人成综合网 | av免费在线观看网站 | 激情久久一区二区三区 | 亚洲四虎在线 | 九九九九色 | 国产一级性生活视频 | 亚洲综合视频在线 | 欧美精选一区二区三区 | 成人免费看片网址 | 日韩xxxxxxxxx | 超碰在线成人 | 午夜精品视频福利 | 亚洲精品黄网站 | av高清一区| 日韩区欠美精品av视频 | 久久国产精品久久久久 | 狠狠操导航 | 99热精品国产一区二区在线观看 | 国产69精品久久久久99尤 | 国产精品九九视频 | 99热国产在线 | 国产视频网站在线观看 | 成人黄色小说在线观看 | 特级毛片在线免费观看 | 日本黄色大片免费看 | 欧美一区二区三区在线 | 久久久久久久久影视 | 奇米网777 | 免费高清在线观看成人 | 日韩视频中文字幕在线观看 | 日韩在线观看第一页 | 在线黄网站 | 久久综合久久综合这里只有精品 | 久久天天躁| 人人精品久久 | 免费成人在线观看 | 国产综合在线视频 | 成人久久18免费网站图片 | 国产免费黄视频在线观看 | 一区二区三区视频 | 亚州性色| 日韩av午夜 | 国产精品手机在线 | 久久人人爽人人爽人人片av软件 | 五月婷婷在线观看视频 | 久久艹艹 | 国产私拍在线 | 国产欧美精品xxxx另类 | 一区二区三区日韩视频在线观看 | 在线高清 | 国产成人一区二区三区在线观看 | 色97在线| 国产中文字幕一区 | 精品美女国产在线 | 午夜性色| 久久艹精品| 91精彩在线视频 | 黄色成品视频 | 天天天天天天干 | 久久国产免费看 | av午夜电影| 二区中文字幕 | 麻豆精品在线视频 | 黄色影院在线免费观看 | 欧美在线视频精品 | 在线亚洲观看 | 免费毛片一区二区三区久久久 | 91黄色成人 | 免费亚洲一区二区 | 国产精品精品国产色婷婷 | 色五月色开心色婷婷色丁香 | 国产精品一区二区av影院萌芽 | 在线观看视频在线观看 | 国产不卡在线播放 | 9色在线视频| 99视频在线播放 | 中文字幕在线观看视频一区 | 91精品啪在线观看国产线免费 | 国产91精品看黄网站 | 91成人蝌蚪 | 亚洲精品裸体 | 久青草国产在线 | 中文字幕av电影下载 | 国产精品夜夜夜一区二区三区尤 | 狠狠操欧美 | 丁香六月激情 | 91成人短视频在线观看 | 国产在线精品二区 | 久久久久久久国产精品视频 | 免费看国产a | 亚洲 成人 欧美 | 久久久精品国产一区二区 | 国产一二区免费视频 | 99欧美| 中文字幕免费高清在线 | 999男人的天堂 | 五月天亚洲综合小说网 | 欧美一级电影 | 国产视频在线观看一区二区 | 在线看v片成人 | 欧美国产日韩一区二区三区 | www.av免费观看 | 人人爽网站 | 五月综合色婷婷 | 黄污网| 亚洲精品在线观看中文字幕 | 亚洲经典精品 | 国产黄色精品 | 天天爽人人爽夜夜爽 | 天天干天天操天天射 | 国产黄大片 | 三级大片网站 | 亚洲自拍偷拍色图 | 国产精品夜夜夜一区二区三区尤 | 精品久久久成人 | 久久精品国产一区二区三区 | 91在线porny国产在线看 | 伊香蕉大综综综合久久啪 | 欧美日韩国产综合网 | 色噜噜噜噜 | 成人啪啪18免费游戏链接 | 国产精品久久久久久久久久免费看 | 免费观看成年人视频 | 92国产精品久久久久首页 | 国产麻豆视频在线观看 | 成年美女黄网站色大片免费看 | 欧美91精品久久久久国产性生爱 | 五月天激情电影 | 国产一区二区三区免费观看视频 | 999久久久免费精品国产 | 久久乱码卡一卡2卡三卡四 五月婷婷久 | 国产一级片观看 | .精品久久久麻豆国产精品 亚洲va欧美 | 国产精品日韩欧美一区二区 | 久久久国产成人 | 欧美精品一二 | 欧美精品乱码久久久久久 | 亚洲免费专区 | 在线看国产视频 | 中文在线www | av电影在线观看完整版一区二区 | 狠狠狠色狠狠色综合 | 婷婷激情综合五月天 | 国产精品美女999 | 成人av免费在线播放 | 国产精品伦一区二区三区视频 | 国产96在线| 欧美经典久久 | 久久久久99精品国产片 | 婷婷丁香狠狠爱 | 亚洲精品视频网站在线观看 | 日韩中文字幕免费在线观看 | 国产精品涩涩屋www在线观看 | 久久久久免费电影 | 综合婷婷 | 视频三区 | japanesefreesexvideo高潮 | 久久久久激情视频 | 亚洲小视频在线 | 国产在线不卡视频 | 国产资源在线观看 | 在线观看免费版高清版 | 在线免费观看国产精品 | 99久热| 探花国产在线 | 欧美精品一区二区三区四区在线 | 日韩色在线观看 | 精品毛片久久久久久 | av成人免费在线看 | 在线韩国电影免费观影完整版 | 国产精品第十页 | 亚洲综合成人在线 | 狠狠久久综合 | 国产黄色资源 | 国产精久久久久久久 | 一区二区三区日韩精品 | 夜夜躁日日躁狠狠久久88av | 亚洲美女精品区人人人人 | 在线观看完整版 | 久久精品99久久久久久2456 | 日本91在线| 欧美久久电影 | 在线免费视频 你懂得 | 亚洲精品午夜久久久久久久久久久 | 亚洲专区中文字幕 | 精品夜夜嗨av一区二区三区 | 亚洲精品网站在线 | 免费三级黄色片 | 亚洲天堂激情 | 国产精品乱码久久久久 | 啪嗒啪嗒免费观看完整版 | 欧美成人精品三级在线观看播放 | 久草.com| 激情av一区二区 | wwwav视频 | 狠狠色丁香久久婷婷综 | 久久精品国产v日韩v亚洲 | 91精品国产高清自在线观看 | 免费a级毛片在线看 | 国产精品一区二区吃奶在线观看 | 欧美日韩国内在线 | 色综合久久五月 | 中文在线a天堂 | 97在线公开视频 | 精品五月天 | 久久免费电影 | 成人免费观看电影 | 毛片网免费 | 日韩午夜电影 | 国产一线二线三线性视频 | 免费人成网ww44kk44 | 国内精品久久久精品电影院 | 久久观看免费视频 | 激情五月综合网 | 免费在线观看黄网站 | 国产中文a | 808电影免费观看三年 | 成人av电影网址 | 天天插天天色 | 麻豆免费看片 | 在线观看亚洲成人 |