日韩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

總結

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

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

国产玖玖视频 | 成人av资源网 | 日韩精品视频免费看 | 国产手机视频 | 中文字幕在线资源 | 色操插 | 狠狠撸电影| 又大又硬又黄又爽视频在线观看 | 欧美日韩xx | 亚洲精品黄色在线观看 | 免费看的黄色片 | 国产成人精品一区二区三区 | 福利片免费看 | 欧美夫妻性生活电影 | 国产99在线 | 欧美在线视频第一页 | 欧美伦理一区 | 亚洲日本va在线观看 | 欧美日韩国产在线一区 | 在线观看黄网站 | 国产中文字幕久久 | 月下香电影 | 国产成人精品久久久 | 五月婷在线观看 | 在线 国产一区 | 日韩1级片 | 91伊人影院 | 人人爽人人干 | 九九热1 | 狠狠色丁香久久婷婷综合丁香 | 免费日韩精品 | 国产精品久久久久久久久久不蜜月 | 日本高清中文字幕有码在线 | 久久免费视频99 | 午夜精品久久久久久久99婷婷 | 99国内精品久久久久久久 | 美女一区网站 | 一区二区三区在线观看 | 成人h电影 | 国产123av| 在线播放亚洲 | 六月丁香色婷婷 | 日韩精品一区二区三区水蜜桃 | 色婷婷狠狠五月综合天色拍 | 91精品啪在线观看国产 | 久久福利在线 | 99综合电影在线视频 | 男女啪啪免费网站 | 99九九热只有国产精品 | av东方在线| 色婷婷久久久综合中文字幕 | 亚洲精品小视频 | 免费观看一级 | 久久精品精品 | 久久免费电影网 | 久久国产精品一区二区三区 | 五月开心综合 | 国产精品久久久久久久久岛 | 久久av电影| 一区二区三区四区在线 | 欧美天堂影院 | 欧美成人高清 | 日韩成人精品一区二区 | 亚洲精品视频在线观看免费视频 | www.激情五月.com | 日韩特级片 | 五月婷婷伊人网 | 在线观看mv的中文字幕网站 | 国产成人a亚洲精品v | 天天插日日操 | 日韩精品在线观看av | 蜜臀av在线一区二区三区 | 亚洲国产69| 久久久久免费精品国产 | www视频在线播放 | 国产美女在线免费观看 | 国产成人精品一区二区三区在线观看 | 成人网页在线免费观看 | 91福利视频一区 | 国产一区二区三区四区在线 | 粉嫩aⅴ一区二区三区 | 国产免费观看高清完整版 | 在线免费性生活片 | 国产在线观看你懂得 | 免费看的黄色录像 | 欧美日韩高清在线一区 | 日日碰狠狠添天天爽超碰97久久 | 久久精品久久99 | av日韩国产 | 欧洲精品视频一区二区 | 国产精品嫩草在线 | 五月天六月婷婷 | 天天色婷婷 | 综合天堂av久久久久久久 | 色爱区综合激月婷婷 | 狠狠操狠狠干天天操 | 日韩欧美网址 | 欧洲在线免费视频 | 日本精品视频在线播放 | 在线一区电影 | 成人在线观看网址 | 成人av网站在线播放 | 国产人成一区二区三区影院 | 成人精品99 | 视频在线播放国产 | 日韩免| 国产免费二区 | 免费av网址大全 | 国产色啪 | 91亚洲国产成人久久精品网站 | 天天操天天色综合 | 高清国产在线一区 | 欧美日韩精品在线观看视频 | 黄色网址中文字幕 | 欧美精品v国产精品v日韩精品 | 久久久久成人精品 | 一区二区三区福利 | 91av在线精品 | 日韩免费视频 | 在线91观看 | 亚洲另类人人澡 | 国产小视频在线观看免费 | 国产二区精品 | 欧洲精品视频一区二区 | 麻豆国产视频 | 精品综合久久久 | 免费网址你懂的 | 中文字幕在线不卡国产视频 | 久久综合久色欧美综合狠狠 | 99在线热播精品免费99热 | 日韩在线高清免费视频 | 天天操天天操天天操天天操天天操 | 日本不卡一区二区 | 日韩中文字幕国产精品 | 91福利试看 | 精品久久免费 | 精品uu| 国产伦理一区二区 | 97视频在线免费播放 | 亚洲第二色 | 99爱视频在线观看 | 最近中文字幕完整视频高清1 | 国产91在| 亚洲九九九在线观看 | 免费亚洲视频在线观看 | 91久久丝袜国产露脸动漫 | 2020天天干夜夜爽 | 日本久久久久久久久 | 高清国产一区 | av成人免费观看 | 九九精品在线观看 | 免费在线观看黄网站 | 美州a亚洲一视本频v色道 | 国产亚洲精品久久久久久 | 中文字幕刺激在线 | 久久婷婷激情 | 偷拍精偷拍精品欧洲亚洲网站 | 久99久在线 | 婷婷婷国产在线视频 | 亚洲第一色 | 91手机电影 | 天天曰天天射 | 国产喷水在线 | 一本一本久久a久久精品综合 | 成人国产精品一区 | 黄色av高清 | 亚洲天堂精品视频 | 天天精品视频 | 亚洲天堂网在线视频观看 | 国产一区av在线 | 国产视频一区二区三区在线 | 人人爽人人澡人人添人人人人 | 欧美日韩高清国产 | 久久久国产精品电影 | 日韩在线 一区二区 | 嫩小bbbb摸bbb摸bbb | 天天干天天在线 | 国产一级黄色片免费看 | 99一级片| 久久久久久久久久久福利 | 在线看污网站 | 国产精品久久久 | 久久精品黄 | 丁香在线| 国产一卡在线 | 色国产精品 | 看片网站黄 | 色综合天 | 不卡的av在线播放 | 欧美一级日韩三级 | 人人澡人摸人人添学生av | 不卡av在线播放 | 高清国产午夜精品久久久久久 | 婷婷色中文网 | 91视频免费看片 | 日韩二区三区在线 | 国产精品久久艹 | 日韩av成人免费看 | 久久久久亚洲国产 | 欧美一区二区三区在线观看 | 免费看成年人 | av中文资源在线 | 午夜精品一区二区三区在线 | a级国产乱理论片在线观看 伊人宗合网 | 国产精品1000 | 国产在线色视频 | 久草在线免费看视频 | 在线国产91 | 国产精品21区 | 伊人中文网 | 玖玖在线看| 欧美精品免费在线观看 | 在线观看视频你懂得 | 国产精品9999 | 玖玖精品视频 | 曰本三级在线 | 亚洲精品中文在线 | 天天插伊人 | 4438全国亚洲精品在线观看视频 | 午夜视频不卡 | 欧美一区二区三区四区夜夜大片 | 成人黄色在线观看视频 | 99这里只有久久精品视频 | 欧美在线视频精品 | 婷婷六月天丁香 | 久久九九网站 | 日韩福利在线观看 | 国产香蕉97碰碰久久人人 | www.香蕉视频在线观看 | 激情丁香5月 | 国内精品毛片 | 看av在线 | 欧美成人91 | 久久亚洲欧美 | 亚洲高清国产视频 | 午夜精品影院 | 黄色成年片 | 亚洲精品91天天久久人人 | 亚洲精品在线视频播放 | 国产午夜不卡 | 国产黄在线 | 黄色a大片 | 激情开心| av免费网站观看 | 人人射网站| 欧美aa一级片 | 欧美日韩高清不卡 | 狠狠干在线播放 | 深夜精品福利 | 狠狠色噜噜狠狠狠狠2022 | 欧美性大战久久久久 | 色婷婷免费 | 在线 国产 亚洲 欧美 | 97超碰资源总站 | 日本中文字幕网 | 免费观看福利视频 | www99久久 | 欧美日韩不卡一区 | 亚洲乱码精品久久久久 | 成人精品久久久 | 狠色在线 | 亚洲欧洲精品一区二区精品久久久 | 国产高清在线观看av | 亚洲高清精品在线 | 亚洲国产合集 | 999免费视频 | 久草在线手机观看 | 亚洲精品女人久久久 | 久久午夜鲁丝片 | 国产美女永久免费 | 国产成人精品在线 | 亚洲精品国产第一综合99久久 | 久久精品99国产国产 | 日韩黄色软件 | 亚洲国产精品一区二区久久,亚洲午夜 | 人人爽网站 | 欧美做受高潮1 | 欧美a级一区二区 | 日本久久久久久久久 | 国内精品久久久久久久久久 | 亚洲 欧美 另类人妖 | 美女黄色网在线播放 | 色综合天天爱 | 99精彩视频在线观看免费 | 日韩美精品视频 | 在线观看a视频 | 97电影手机版 | 在线亚洲欧美视频 | 日韩r级在线 | 欧美a在线看 | 欧美日韩国产一二 | 日韩极品视频在线观看 | 欧美九九九 | 91九色蝌蚪视频在线 | 91激情在线视频 | 美女视频黄,久久 | 国产裸体bbb视频 | 国产精品正在播放 | 一区二区三区在线看 | 天天综合网 天天 | 久久精品亚洲国产 | 亚洲精品色视频 | 五月天久久婷婷 | 草莓视频在线观看免费观看 | 天天干天天色2020 | 国产高清久久 | 91手机电视 | 狠狠干五月天 | 国产精品免费久久久久久 | 午夜av在线电影 | 亚洲美女视频在线 | 色天天中文 | 日韩欧美在线免费观看 | 91精品视频在线播放 | adn—256中文在线观看 | 夜夜操天天 | 亚洲精品18日本一区app | 黄色av电影 | 国产免费不卡 | 日韩爱爱网站 | 国产精品麻豆三级一区视频 | 一区二区三区精品久久久 | 国产精品国产亚洲精品看不卡 | 精品一二三区视频 | 国产精品福利午夜在线观看 | 黄在线免费看 | 日韩系列| 成人av久久 | 日韩av中文字幕在线免费观看 | 高清国产一区 | 在线播放 日韩专区 | 中文字幕在线有码 | 97成人免费视频 | 日日久视频 | 一级成人免费 | 天天操天天曰 | 成人黄色小说在线观看 | 国产伦精品一区二区三区在线 | 天天爽夜夜爽人人爽一区二区 | 国产 一区二区三区 在线 | 99热网站 | 亚洲天堂毛片 | 成人观看视频 | 日韩视频一区二区在线观看 | 色在线观看网站 | 午夜精品久久久久99热app | 国产亚洲小视频 | 少妇高潮冒白浆 | 久久久蜜桃一区二区 | 久久久久精 | 麻豆成人精品 | 久久伊人操 | 99久久99久久免费精品蜜臀 | 久久久影院| 中文字幕在线观看一区二区 | 午夜三级理论 | 激情av在线资源 | 国产精品2020 | 狠狠狠狠狠干 | www.国产在线视频 | 超碰97国产在线 | 中文字幕av免费观看 | 日韩成人xxxx | 国产破处视频在线播放 | 日韩欧美精品在线视频 | 久久综合一本 | 视频二区 | 九月婷婷人人澡人人添人人爽 | 国产精品专区h在线观看 | 亚洲精品影院在线观看 | 国产精品一区二区久久 | 最新日韩视频在线观看 | 黄色毛片视频免费观看中文 | 日韩精品久久久久久久电影竹菊 | 99热精品国产 | 91精品久久久久久久久久久久久 | 狠狠躁夜夜躁人人爽超碰91 | 免费高清男女打扑克视频 | 久草在线手机观看 | 久久九九网站 | 日本韩国精品一区二区在线观看 | www.亚洲黄 | 在线观看午夜 | 91精品在线播放 | 热久久99这里有精品 | 亚洲综合网| 在线观看国产www | 91精品国产乱码久久 | 免费能看的黄色片 | 国产精品久久电影观看 | 免费成人av网站 | 一区二区三区在线影院 | 国产一二三区在线观看 | 奇米先锋 | 91私密保健 | 亚洲精品tv久久久久久久久久 | 日韩精品免费在线观看视频 | 国产二区视频在线观看 | 国产精品21区 | 69视频国产 | 日韩婷婷 | 亚洲国产精品小视频 | 国产精品久久久久久五月尺 | 亚洲美女在线国产 | 国产视频一 | 婷婷六月在线 | av电影在线观看完整版一区二区 | 欧美精品乱码久久久久久按摩 | 一区二区三区国产精品 | 国产精品视频免费 | 国产无区一区二区三麻豆 | 国产91aaa | 香蕉影院在线播放 | 黄色免费av| 97成人精品 | 亚色视频在线观看 | 久久成人亚洲欧美电影 | 欧美性视频网站 | 美女在线免费观看视频 | 成人sm另类专区 | 成人免费观看在线视频 | 丁香视频 | 97视频网址 | 色偷偷男人的天堂av | 国产精品一区二区中文字幕 | 欧美色伊人 | 久久人人爽人人爽 | 久久色在线播放 | 久久久久久网站 | 国产精品久久久久aaaa九色 | 五月婷婷综合久久 | 精品99免费视频 | 国产综合香蕉五月婷在线 | 99视频国产精品 | 国产午夜在线观看 | 99久久成人 | 最近中文字幕视频网 | 久久亚洲福利视频 | 五月婷婷在线视频观看 | 免费观看的av | 亚洲另类视频在线 | 欧美精品资源 | 日韩在线短视频 | 中文字幕超清在线免费 | 免费观看丰满少妇做爰 | 欧美日韩一区二区在线观看 | 国产手机在线播放 | 久久国内精品 | 国产中文字幕视频在线观看 | 亚洲一级免费观看 | 亚洲成av人片在线观看香蕉 | 91视频在线自拍 | 欧美日韩视频精品 | 在线免费观看视频一区二区三区 | 最新国产精品视频 | 国语黄色片 | 国产精品热视频 | 国产精品免费小视频 | 一区二区 不卡 | 日本精品免费看 | 日本中文字幕在线 | 九九九毛片 | 久久久久久久影视 | 日韩av一区二区在线 | 日韩在线| 欧美午夜久久 | 日韩视频一区二区三区在线播放免费观看 | 日本精品视频在线 | 亚洲综合视频在线观看 | 国产在线观看一区 | 亚洲精品美女在线 | 欧美日韩不卡一区二区 | 成人一级 | 久久国产精品一国产精品 | 国产99黄| 成人蜜桃网 | 一区二区三区韩国免费中文网站 | 欧美精品xxx | 日本激情视频中文字幕 | 日韩中文字幕视频在线观看 | 亚洲日本精品视频 | 亚洲成人av一区 | 四虎8848免费高清在线观看 | 日韩中文字幕a | 国产二区电影 | 亚洲欧洲在线视频 | 成人少妇影院yyyy | 香蕉视频91 | 97视频资源 | 天天天天天干 | 97国产一区二区 | 亚洲高清视频一区二区三区 | 91精品办公室少妇高潮对白 | 日本成人a| 日韩激情一二三区 | 中文字幕免费高清 | 伊人夜夜| 蜜桃视频日本 | 国产第一页福利影院 | 国产手机在线精品 | 欧美一二三专区 | 91精品国产电影 | www.成人精品| 热99在线视频 | 久久美女精品 | 国产精品入口麻豆www | 国产99一区 | 在线婷婷 | 91av短视频| 超碰人人草| 中文字幕亚洲精品日韩 | 国产精品久久久毛片 | 久久99欧美 | 欧美日韩国产区 | 中文字幕免费一区二区 | 99 精品 在线 | 在线视频 一区二区 | 波多野结衣在线观看视频 | 91香蕉视频色版 | 在线观看第一页 | 丁香婷婷色月天 | 操久 | 久草精品视频 | 中文字幕刺激在线 | 蜜臀av性久久久久av蜜臀三区 | 在线观看一级视频 | 国产专区视频在线观看 | 久草精品视频 | 日韩r级在线 | 亚洲一区二区三区毛片 | 91九色视频在线播放 | 色在线高清 | 性日韩欧美在线视频 | 精品资源在线 | 日韩精品视频免费在线观看 | 久久综合久久久 | 日韩偷拍精品 | 中文字幕色网站 | 最近日本韩国中文字幕 | 色成人亚洲 | 日韩免费一区二区在线观看 | 24小时日本在线www免费的 | 69国产精品成人在线播放 | 午夜精品久久久久久久99 | 正在播放 国产精品 | 亚洲区另类春色综合小说 | 国产精品一区二区中文字幕 | 日韩av区 | 青草草在线视频 | 日本三级不卡 | 久久精品艹 | 人人揉人人揉人人揉人人揉97 | 国产精品久免费的黄网站 | 久久五月天色综合 | 久久精品免费观看 | av免费观看网站 | 亚洲第一久久久 | 黄色美女免费网站 | 狠狠色网 | 色婷婷中文 | 大胆欧美gogo免费视频一二区 | 综合国产在线 | 国产高清综合 | 91亚洲网站 | 成人在线视频免费看 | 国产又粗又硬又长又爽的视频 | 天天操福利视频 | 国产美女被啪进深处喷白浆视频 | 夜夜爽夜夜操 | 91视频电影 | 麻豆视频大全 | 色先锋资源网 | 亚洲电影第一页av | 免费观看不卡av | 久久综合狠狠综合久久激情 | 免费在线观看av网址 | 日韩免费视频播放 | 免费观看视频黄 | 国产精品白浆视频 | 国产护士av| 黄色免费av | 久久久久综合 | 成人黄色小视频 | 欧洲亚洲国产视频 | 超碰在线天天 | 久久免费观看视频 | 久草在线 | 999视频网站 | 国产亚洲欧美日韩高清 | 操处女逼| 久久久精品免费观看 | 精品久久一区二区 | 伊人影院av | 午夜视频在线观看网站 | 免费黄色网址大全 | 精品一二 | 特级xxxxx欧美 | 丁香五月缴情综合网 | 久久精品第一页 | 九九热在线观看视频 | 国产成人一区二 | 国产专区精品视频 | 992tv在线成人免费观看 | 激情综合网五月 | 99在线观看视频网站 | 黄色视屏av| www.超碰97.com | 天天射综合 | 日韩在线视频免费播放 | 高清免费在线视频 | 欧美日一级片 | 午夜免费在线观看 | 日韩精品中字 | 午夜精品一区二区三区在线 | 97精品超碰一区二区三区 | 国产高清视频在线免费观看 | 免费国产在线观看 | 久久av免费观看 | 精品一区 精品二区 | 99视频导航 | 91人人澡 | 日韩在线免费高清视频 | 中文字幕在线一区观看 | www.午夜视频 | 日韩电影一区二区在线 | 久久久国产99久久国产一 | 在线观看视频国产 | 欧美 激情 国产 91 在线 | 日韩欧美视频在线观看免费 | 色婷婷精品大在线视频 | 精品久久电影 | 亚洲精品综合久久 | 91看成人| 日日干夜夜操视频 | 99热99re6国产在线播放 | 久久精品9 | 黄色小说在线免费观看 | 中文字幕在线观看免费观看 | 婷婷在线资源 | 国产婷婷久久 | 99re6热在线精品视频 | 成人va视频 | 在线成人一区二区 | 国产日韩精品一区二区三区 | 天天玩夜夜操 | 西西444www大胆高清视频 | 青青河边草免费视频 | 久草在线免费播放 | 黄色三级免费看 | 在线av资源| 午夜美女wwww | 国产麻豆精品免费视频 | 婷婷免费视频 | 狠狠色噜噜狠狠狠 | 免费日韩一区二区三区 | 又色又爽又激情的59视频 | 久久久久久久国产精品 | 精品一区二区三区电影 | 国产一区二区免费在线观看 | 欧美日韩色婷婷 | 国精产品一二三线999 | 天天操综合网 | 又粗又长又大又爽又黄少妇毛片 | 久久99国产精品 | 97香蕉超级碰碰久久免费软件 | 国产在线观看你懂得 | 久久综合久久综合这里只有精品 | 欧美日韩精 | 国产高清精 | 免费看一级特黄a大片 | 精品国产乱码 | 欧美久久九九 | 在线你懂| 人人看人人艹 | 国产精品久久久久久久久久久杏吧 | 国产成人精品亚洲日本在线观看 | 波多野结衣理论片 | 99久久99视频只有精品 | 久久亚洲电影 | 国产精品v欧美精品v日韩 | 久久国产精品免费 | 激情综合网五月婷婷 | 99这里只有久久精品视频 | 五月天激情综合 | 国产精品久久久网站 | 一区二区三区精品在线视频 | 免费v片 | 精品自拍sae8—视频 | 国内一区二区视频 | 激情五月婷婷激情 | 免费69视频 | 免费看的黄色小视频 | 免费网站在线 | 黄色精品视频 | 在线av资源 | 中文字幕日韩精品有码视频 | 久久综合国产伦精品免费 | 久免费视频| 欧美激情综合网 | 久久电影网站中文字幕 | 韩国av一区二区三区在线观看 | 国产看片 色| 在线观看日韩一区 | 永久中文字幕 | 亚洲精品中文字幕视频 | 黄色一级动作片 | 青青草国产在线 | 91福利社区在线观看 | 久久爱www.| 免费在线观看日韩 | 日韩高清免费观看 | 亚洲精品一区二区三区四区高清 | 福利视频 | 九九九热精品 | 久久8| av三区在线 | 日韩精品免费一区二区三区 | 中文字幕丝袜一区二区 | 高清一区二区 | 91精品天码美女少妇 | 国产精品一二三 | 欧美日韩一区二区免费在线观看 | 国产一级在线视频 | 一区二区三区视频在线 | 日韩免费在线观看 | 97人人澡人人爽人人模亚洲 | 天天在线视频色 | 欧美在线aa | 在线视频欧美日韩 | 国产成人久久精品亚洲 | 91精品久久香蕉国产线看观看 | 亚洲小视频在线 | 麻豆国产精品一区二区三区 | 五月婷婷网站 | 成年人网站免费观看 | 国产精品视频全国免费观看 | 日日躁夜夜躁aaaaxxxx | 国产一性一爱一乱一交 | 久草亚洲视频 | 久热免费在线观看 | 999热线在线观看 | 亚洲国产婷婷 | 成人黄色电影在线观看 | 99久久国产免费,99久久国产免费大片 | 精品亚洲免费 | 精品久久久久免费极品大片 | 99久久精品国产一区二区三区 | 亚洲精品三级 | 国产精品国产精品 | 亚洲精品国偷自产在线91正片 | 中文字幕乱在线伦视频中文字幕乱码在线 | 又黄又爽的免费高潮视频 | 亚洲精品久久久久58 | 久久婷婷国产 | 久久精品久久精品久久精品 | 99精品视频在线观看视频 | 亚洲综合色丁香婷婷六月图片 | 国产青青青 | 九色91在线视频 | 久久热亚洲 | 在线看一区 | 国产原厂视频在线观看 | 国产视频一区二区在线观看 | 日韩精品视频在线免费观看 | 国产一区二区在线免费 | 亚洲精品一区二区三区新线路 | 国产91勾搭技师精品 | 国产精品短视频 | 右手影院亚洲欧美 | 午夜精品婷婷 | 欧美成人黄色片 | 天天射天天色天天干 | 国产 视频 久久 | 少妇bbbb | 久久ww| 成人永久视频 | 国产精品欧美一区二区三区不卡 | www在线观看视频 | 一区二区三区影院 | 97成人超碰 | 婷婷色综合色 | 久久免费视频在线观看30 | 亚洲撸撸 | 中文久久精品 | 黄色免费高清视频 | 欧美色综合 | 久久久99精品免费观看app | 久久精彩 | 丁香婷婷在线观看 | 日韩中文字幕免费在线观看 | 99在线播放 | 亚洲激情校园春色 | 久久久免费少妇 | 一区二区不卡视频在线观看 | 国产精品久久久久免费观看 | 日韩欧美综合在线视频 | 国内精品福利视频 | 激情影音 | 日日干夜夜爱 | 国产精品精 | 免费观看9x视频网站在线观看 | 婷婷综合视频 | 天天操天天干天天操天天干 | 黄色a在线 | 国产不卡一区二区视频 | 精品免费观看 | 久久综合九色综合97_ 久久久 | 亚洲综合成人专区片 | 97成人在线免费视频 | 国内少妇自拍视频一区 | 久草网站在线 | 久久精品日产第一区二区三区乱码 | 日韩欧在线 | 成年人av在线播放 | 在线观看福利网站 | 婷婷丁香自拍 | avwww在线观看 | 亚洲成人精品在线观看 | 久久久高清 | a在线观看免费视频 | 久久精品国产一区二区电影 | 国产视频在线观看一区 | 精品国产乱码久久久久久1区二区 | 波多野结衣电影一区 | av千婊在线免费观看 | 99这里都是精品 | 五月天婷婷在线观看视频 | 久久久精品国产一区二区电影四季 | 国产色a在线观看 | 欧美综合在线观看 | 国产一区二区在线观看免费 | 丁香九月激情综合 | 毛片网站免费 | 国产精品理论在线观看 | 欧美一级黄色网 | 成人毛片在线视频 | 国产91九色视频 | 国产成人亚洲在线观看 | 久久成人午夜视频 | 久草在线视频免赞 | 中文字幕电影在线 | 欧美色久| 免费观看久久 | 国产亚洲人成网站在线观看 | a级免费观看 | 国产一区二区三区免费在线观看 | 久久国产成人午夜av影院宅 | 亚洲h在线播放在线观看h | 久久久高清 | 成人h动漫在线看 | 91精品免费视频 | 国产99久久久久久免费看 | 玖玖视频 | 日本精品久久 | 在线电影a| 国产成人av电影在线 | 久久成人毛片 | 精品国产一区二区三区四区在线观看 | 少妇自拍av | 四虎影视4hu4虎成人 | 狠狠躁18三区二区一区ai明星 | 人人舔人人舔 | 99热最新网址 | 久久涩涩网站 | 日韩大片免费观看 | 欧美a级片免费看 | 日日夜精品| 7777xxxx| 亚洲黄a | 国产99久久久国产精品 | 7777xxxx | www.福利视频 | 精品国产1区二区 | 色综合久 | 91黄色在线观看 | 久久国产精品第一页 | 日韩中文字幕电影 | 亚洲情婷婷 | 天天草天天操 | 丁香六月天 | 日日爽夜夜爽 | 在线免费观看羞羞视频 | 黄色成年 | 亚洲欧美综合精品久久成人 | 国产成人一区三区 | www.国产高清 | 丝袜护士aⅴ在线白丝护士 天天综合精品 | 97在线视| 国产精品久久久久久久免费 | 欧美精彩视频在线观看 | 国产精品久久久久一区二区 | avwww在线| 日韩精品网址 | 99精品国产福利在线观看免费 | 久久只精品99品免费久23小说 | 国产高清在线观看av | 99精品视频播放 | 免费能看的黄色片 | 免费黄色av片 | 精品一区二区免费 | 激情网色 | 天天看天天操 | 亚洲一区二区视频在线播放 | 成人黄色av免费在线观看 | 日韩精品视频免费专区在线播放 | 午夜影视一区 | 日韩特级毛片 | 国产xxxx做受性欧美88 | 日韩av一区二区在线播放 | 亚洲无在线 | 午夜精品区 | 国产视频一区在线播放 | 国产欧美日韩一区 | 久久这里精品视频 | 一级特黄av | 天天操天天射天天爱 | 日本精品视频网站 | 成人免费一区二区三区在线观看 | 成人精品国产免费网站 | 欧美精品在线观看一区 | 最新国产一区二区三区 | 91精品网站在线观看 | 国产精品久久久久久久免费大片 | 青青草国产在线 | 色综合天天综合 | 黄色aaa毛片 | 亚洲欧美日韩国产一区二区三区 | 天天操天天干天天综合网 | 青青草久草在线 | 日韩精品一区二区三区在线视频 | 亚洲免费成人 | 91免费版在线 | 欧美一级特黄高清视频 | 伊人看片 | 国产精品久久一区二区三区, | 午夜久久网 | 黄色小说在线免费观看 | 国产一区视频在线 | 国产亚洲精品久久久久动 | 91网在线 | 性日韩欧美在线视频 | 成人午夜在线观看 | 国产在线理论片 | 91精品免费在线视频 | 成年人免费看av | 在线观看你懂的网址 | 高潮毛片无遮挡高清免费 | 天天操综合网站 | 成人黄色av网站 | 在线视频1卡二卡三卡 | 中文字幕你懂的 | 国产一级特黄毛片在线毛片 | 色视频在线免费 | 日韩电影在线观看一区二区三区 | 亚州国产视频 | 91激情在线视频 | 黄色国产精品 | 综合色伊人 | 欧美精品乱码久久久久 | 国产一级二级视频 | 国产高清在线免费观看 | 在线观看av国产 | 婷婷av色综合 | 五月婷婷丁香网 | 国产精品自产拍在线观看网站 | 最新国产精品久久精品 | 九九视频这里只有精品 | 欧美综合色 | 欧美日韩高清一区二区 国产亚洲免费看 | 亚洲精品免费观看视频 | 成人久久久电影 | 免费福利在线 | 久久,天天综合 | 精品人人爽 | 久久成人麻豆午夜电影 | 欧美午夜精品久久久久 | 久久小视频 | 国产福利91精品一区二区三区 | 人人干人人爽 | www.午夜 | 97超碰人人爱 | 五月婷婷激情网 | 激情在线五月天 | 九九免费精品 | 国产精品中文字幕在线 | 欧美国产日韩一区二区 | 一级a性色生活片久久毛片波多野 | www.福利 | 日韩久久网站 | 国产精品2018 | 国产福利一区二区在线 | 久色免费视频 | 亚洲电影网站 | 亚洲欧美日韩国产一区二区 | 91传媒免费观看 | 狠狠干网站 | 很黄很黄的网站免费的 | 伊人网av|