精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Java版A星算法實(shí)現(xiàn)步驟

開發(fā) 后端 算法
A星算法步驟:1.起點(diǎn)先添加到開啟列表中;2.開啟列表中有節(jié)點(diǎn)的話,取出第一個(gè)節(jié)點(diǎn),即最小F值的節(jié)點(diǎn)……

A星算法步驟:

1.起點(diǎn)先添加到開啟列表中。

2.開啟列表中有節(jié)點(diǎn)的話,取出***個(gè)節(jié)點(diǎn),即最小F值的節(jié)點(diǎn),

判斷此節(jié)點(diǎn)是否是目標(biāo)點(diǎn),是則找到了,跳出,

根據(jù)此節(jié)點(diǎn)取得八個(gè)方向的節(jié)點(diǎn),求出G,H,F(xiàn)值,

判斷每個(gè)節(jié)點(diǎn)在地圖中是否能通過,不能通過則加入關(guān)閉列表中,跳出判斷每個(gè)節(jié)點(diǎn)是否在關(guān)閉列表中,在則跳出,

判斷每個(gè)節(jié)點(diǎn)是否在開啟列表中,在則更新G值,F(xiàn)值,還更新其父節(jié)點(diǎn);不在則將其添加到開啟列表中,計(jì)算G值,H值,F(xiàn)值,添加其節(jié)點(diǎn)。

3.把此節(jié)點(diǎn)從開啟列表中刪除,再添加到關(guān)閉列表中。

4.把開啟列表中按照F值最小的節(jié)點(diǎn)進(jìn)行排序,最小的F值在***個(gè)。

5.重復(fù)2,3,4步驟,

直到目標(biāo)點(diǎn)在開啟列表中,即找到了;目標(biāo)點(diǎn)不在開啟列表中,開啟列表為空,即沒找到。

  1. //A*算法public class AStar {  
  2.     private int[][] map;//地圖(1可通過 0不可通過)  
  3.     private List<Node> openList;//開啟列表  
  4.     private List<Node> closeList;//關(guān)閉列表  
  5.     private final int COST_STRAIGHT = 10;//垂直方向或水平方向移動(dòng)的路徑評分  
  6.     private final int COST_DIAGONAL = 14;//斜方向移動(dòng)的路徑評分  
  7.     private int row;//行  
  8.     private int column;//列  
  9.         public AStar(int[][] map,int row,int column){  
  10.         this.map=map;  
  11.         this.row=row;  
  12.         this.column=column;  
  13.         openList=new ArrayList<Node>();  
  14.         closeList=new ArrayList<Node>();  
  15.     }  
  16.         //查找坐標(biāo)(-1:錯(cuò)誤,0:沒找到,1:找到了)  
  17.     public int search(int x1,int y1,int x2,int y2){  
  18.         if(x1<0||x1>=row||x2<0||x2>=row||y1<0||y1>=column||y2<0||y2>=column){  
  19.               
  20. return -1;  
  21.         }  
  22.         if(map[x1][y1]==0||map[x2][y2]==0){            return -1;  
  23.         }  
  24.         Node sNode=new Node(x1,y1,null);  
  25.         Node eNode=new Node(x2,y2,null);        openList.add(sNode);  
  26.         List<Node> resultList=search(sNode, eNode);  
  27.         if(resultList.size()==0){  
  28.             return 0;  
  29.         }  
  30.         for(Node node:resultList){  
  31.             map[node.getX()][node.getY()]=-1;  
  32.         }  
  33.         return 1;  
  34.     }  
  35.         //查找核心算法  
  36.     private List<Node> search(Node sNode,Node eNode){  
  37.         List<Node> resultList=new ArrayList<Node>();  
  38.         boolean isFind=false;  
  39.         Node node=null;  
  40.         while(openList.size()>0){  
  41.             //取出開啟列表中***F值,即***個(gè)存儲的值的F為***的  
  42.             node=openList.get(0);  
  43.             //判斷是否找到目標(biāo)點(diǎn)  
  44.             if(node.getX()==eNode.getX()&&node.getY()==eNode.getY()){  
  45.                 isFind=true;  
  46.                 break;  
  47.             }  
  48.             //上  
  49.             if((node.getY()-1)>=0){                checkPath(node.getX(),node.getY()-1,node, eNode, COST_STRAIGHT);  
  50.             }  
  51.             //下  
  52.             if((node.getY()+1)<column){  
  53.                 checkPath(node.getX(),node.getY()+1,node, eNode, COST_STRAIGHT);  
  54.             }  
  55.             //左  
  56.             if((node.getX()-1)>=0){  
  57.                 checkPath(node.getX()-1,node.getY(),node, eNode, COST_STRAIGHT);  
  58.             }  
  59.             //右  
  60.             if((node.getX()+1)<row){  
  61.                 checkPath(node.getX()+1,node.getY(),node, eNode, COST_STRAIGHT);  
  62.             }  
  63.             //左上  
  64.             if((node.getX()-1)>=0&&(node.getY()-1)>=0){  
  65.                 checkPath(node.getX()-1,node.getY()-1,node, eNode, COST_DIAGONAL);  
  66.             }  
  67.             //左下  
  68.             if((node.getX()-1)>=0&&(node.getY()+1)<column){  
  69.                 checkPath(node.getX()-1,node.getY()+1,node, eNode,COST_DIAGONAL);  
  70.             }  
  71.             //右上  
  72.             if((node.getX()+1)<row&&(node.getY()-1)>=0){                checkPath(node.getX()+1,node.getY()-1,node, eNode, COST_DIAGONAL);  
  73.             }  
  74.             //右下  
  75.             if((node.getX()+1)<row&&(node.getY()+1)<column){  
  76.                 checkPath(node.getX()+1,node.getY()+1,node, eNode, COST_DIAGONAL);  
  77.             }  
  78.             //從開啟列表中刪除  
  79.             //添加到關(guān)閉列表中  
  80.             closeList.add(openList.remove(0));  
  81.             //開啟列表中排序,把F值***的放到***端            Collections.sort(openList, new NodeFComparator());  
  82.         }  
  83.         if(isFind){  
  84.             getPath(resultList, node);  
  85.         }  
  86.         return resultList;  
  87.     }  
  88.         //查詢此路是否能走通  
  89.     private boolean checkPath(int x,int y,Node parentNode,Node eNode,int cost){  
  90.         Node node=new Node(x, y, parentNode);  
  91.         //查找地圖中是否能通過  
  92.         if(map[x][y]==0){  
  93.             closeList.add(node);  
  94.             return false;  
  95.         }  
  96.         //查找關(guān)閉列表中是否存在  
  97.         if(isListContains(closeList, x, y)!=-1){  
  98.             return false;  
  99.         }  
  100.         //查找開啟列表中是否存在  
  101.         int index=-1;  
  102.         if((index=isListContains(openList, x, y))!=-1){  
  103.             //G值是否更小,即是否更新G,F(xiàn)值  
  104.             if((parentNode.getG()+cost)<openList.get(index).getG()){  
  105.                 node.setParentNode(parentNode);  
  106.                 countG(node, eNode, cost);  
  107.                 countF(node);  
  108.                 openList.set(index, node);  
  109.             }  
  110.         }else{  
  111.             //添加到開啟列表中  
  112.             node.setParentNode(parentNode);            count(node, eNode, cost);  
  113.             openList.add(node);  
  114.         }  
  115.         return true;  
  116.     }  
  117.         //集合中是否包含某個(gè)元素(-1:沒有找到,否則返回所在的索引)  
  118.     private int isListContains(List<Node> list,int x,int y){  
  119.         for(int i=0;i<list.size();i++){  
  120.             Node node=list.get(i);  
  121.             if(node.getX()==x&&node.getY()==y){  
  122.                 return i;  
  123.             }  
  124.         }  
  125.         return -1;  
  126.     }  
  127.         //從終點(diǎn)往返回到起點(diǎn)  
  128.     private void getPath(List<Node> resultList,Node node){  
  129.         if(node.getParentNode()!=null){            getPath(resultList, node.getParentNode());  
  130.         }  
  131.         resultList.add(node);  
  132.     }  
  133.         //計(jì)算G,H,F值  
  134.     private void count(Node node,Node eNode,int cost){  
  135.         countG(node, eNode, cost);  
  136.         countH(node, eNode);  
  137.         countF(eNode);  
  138.     }  
  139.     //計(jì)算G值  
  140.     private void countG(Node node,Node eNode,int cost){  
  141.         if(node.getParentNode()==null){  
  142.             node.setG(cost);  
  143.         }else{  
  144.             node.setG(node.getParentNode().getG()+cost);  
  145.         }  
  146.     }  
  147.     //計(jì)算H值  
  148.     private void countH(Node node,Node eNode){  
  149.         node.setF(Math.abs(node.getX()-eNode.getX())+Math.abs(node.getY()-eNode.getY()));  
  150.     }  
  151.     //計(jì)算F值  
  152.     private void countF(Node node){  
  153.         node.setF(node.getG()+node.getF());  
  154.     }  
  155.     }//節(jié)點(diǎn)類class Node {  
  156.     private int x;//X坐標(biāo)  
  157.     private int y;//Y坐標(biāo)  
  158.     private Node parentNode;//父類節(jié)點(diǎn)  
  159.     private int g;//當(dāng)前點(diǎn)到起點(diǎn)的移動(dòng)耗費(fèi)  
  160.     private int h;//當(dāng)前點(diǎn)到終點(diǎn)的移動(dòng)耗費(fèi),即曼哈頓距離|x1-x2|+|y1-y2|(忽略障礙物)  
  161.     private int f;//f=g+h  
  162.         public Node(int x,int y,Node parentNode){        this.x=x;  
  163.         this.y=y;  
  164.         this.parentNode=parentNode;  
  165.     }  
  166.         public int getX() {  
  167.         return x;  
  168.     }  
  169.     public void setX(int x) {  
  170.         this.x = x;  
  171.     }  
  172.     public int getY() {  
  173.         return y;  
  174.     }  
  175.     public void setY(int y) {  
  176.         this.y = y;  
  177.     }  
  178.     public Node getParentNode() {  
  179.         return parentNode;  
  180.     }  
  181.     public void setParentNode(Node parentNode) {  
  182.         this.parentNode = parentNode;  
  183.     }  
  184.     public int getG() {  
  185.         return g;  
  186.     }  
  187.     public void setG(int g) {  
  188.         this.g = g;  
  189.     }  
  190.     public int getH() {  
  191.         return h;  
  192.     }  
  193.     public void setH(int h) {  
  194.         this.h = h;  
  195.     }  
  196.     public int getF() {  
  197.         return f;  
  198.     }  
  199.     public void setF(int f) {  
  200.         this.f = f;  
  201.     }}//節(jié)點(diǎn)比較類class NodeFComparator implements Comparator<Node>{  
  202.     @Override 
  203.     public int compare(Node o1, Node o2) {  
  204.         return o1.getF()-o2.getF();  
  205.     }  
  206.     }  

 測試類:

  1. public class Test {  
  2.         public static void main(String[] args){
  3.         int[][] map=new int[][]{
  4. // 地圖數(shù)組
  5.                 {1,1,1,1,1,1,1,1,1,1},
  6.                 {1,1,1,1,0,1,1,1,1,1},
  7.                 {1,1,1,1,0,1,1,1,1,1},
  8.                 {1,1,1,1,0,1,1,1,1,1},
  9.                 {1,1,1,1,0,1,1,1,1,1},
  10.                 {1,1,1,1,0,1,1,1,1,1}  
  11.         };  
  12.         AStar aStar=new AStar(map, 610);  
  13.         int flag=aStar.search(4038);  
  14.         if(flag==-1){  
  15.             System.out.println("傳輸數(shù)據(jù)有誤!");  
  16.         }else if(flag==0){  
  17.             System.out.println("沒找到!");  
  18.         }else{  
  19.             for(int x=0;x<6;x++){  
  20.                 for(int y=0;y<10;y++){
  21.                     if(map[x][y]==1){
  22.                         System.out.print(" ");
  23.                     }else if(map[x][y]==0){
  24.                         System.out.print("〓");
  25.                     }else if(map[x][y]==-1){
  26.                         System.out.print("※");  
  27.                     }  
  28.                 }  
  29.                 System.out.println();  
  30.             }  
  31.         }  
  32.     }} 

原文鏈接:http://www.cnblogs.com/xmmdream/archive/2011/12/12/2284627.html

【編輯推薦】

  1. Tomcat運(yùn)行Java Web內(nèi)存溢出總結(jié)
  2. Java NIO如何處理慢速的連接
  3. Java數(shù)據(jù)緩存實(shí)現(xiàn)的核心機(jī)制
  4. Java與Cobol對決:Cobol軟件質(zhì)量最過硬
  5. Java NIO類庫關(guān)系圖解
責(zé)任編輯:林師授 來源: 塵鋒的博客
相關(guān)推薦

2020-05-19 14:27:10

GitHubPythonAI算法

2011-04-20 10:58:34

Java

2020-08-21 13:41:04

代碼開發(fā)工具

2023-06-13 06:51:09

Spark機(jī)器學(xué)習(xí)回歸

2019-08-12 08:43:53

GitHub代碼開發(fā)者

2010-06-08 10:34:23

opensuse 10

2011-10-17 10:15:12

iMessageChatON三星

2018-03-07 15:27:57

三星筆記本

2010-06-04 16:47:49

實(shí)現(xiàn)Hadoop

2010-06-09 11:05:48

Opensuse安裝m

2010-06-09 09:33:41

Opensuse硬盤

2023-06-25 07:42:02

2015-07-29 10:31:16

Java緩存算法

2017-02-09 16:16:24

Java負(fù)載均衡算法

2020-04-14 15:00:04

PyTorchGitHub檢測

2010-09-09 08:52:19

JavascriptDIV

2010-07-22 13:23:46

telnet SMTP

2009-10-09 16:40:45

RHEL5安裝

2010-04-06 16:36:55

Oracle綁定變量
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

欧美久久精品午夜青青大伊人| 无码av免费一区二区三区试看| 国产盗摄xxxx视频xxx69| 人人妻人人澡人人爽| 欧美高清免费| 亚洲国产综合视频在线观看| 日本精品国语自产拍在线观看| 一本色道久久综合无码人妻| 亚洲先锋成人| 中文欧美日本在线资源| 手机在线播放av| 在线观看v片| 亚洲视频在线一区二区| 精品一区2区三区| 亚洲综合网av| 午夜影院日韩| 欧美成人黑人xx视频免费观看| 亚洲国产精品成人综合久久久| 香蕉久久一区| 色噜噜夜夜夜综合网| 亚洲中文字幕无码一区二区三区| 四虎成人免费在线| 卡一卡二国产精品| 日韩美女毛茸茸| 国产香蕉在线视频| 婷婷综合五月| 中文字幕成人精品久久不卡| 人妻在线日韩免费视频| 韩国三级成人在线| 欧美在线一区二区三区| 久久久亚洲精品无码| 国产最新在线| 国产精品进线69影院| 久久99久久精品国产| 亚洲国产精品无码久久| 美女在线一区二区| 国产成人极品视频| 午夜毛片在线观看| 亚洲久色影视| 高清视频欧美一级| 久久久久久欧美精品se一二三四| 成人精品影视| 亚洲网站在线看| 精品人妻少妇嫩草av无码| 久久91在线| 欧美精品一区二区久久久| 精品无码av一区二区三区不卡| 久久免费资源| 在线一区二区三区四区| 成人在线观看a| 亚洲国产成人二区| 色综合久久88色综合天天6| 国产日韩欧美精品在线观看| 国产精品蜜臀| 午夜精品福利久久久| 国产在线播放观看| 第一福利在线视频| 欧美午夜片在线免费观看| 国产免费黄色小视频| 玖玖在线播放| 色88888久久久久久影院按摩| 大肉大捧一进一出好爽视频| 北岛玲heyzo一区二区| 欧美性猛交xxxx| 国产美女三级视频| 精品免费av一区二区三区| 欧洲精品中文字幕| 一个色综合久久| 欧美电影院免费观看| 日韩一级免费一区| 国产精品99久久久精品无码| 国产一区二区三区不卡av| 亚洲国产精品福利| 巨胸大乳www视频免费观看| 狠狠做深爱婷婷综合一区| 在线播放亚洲激情| 国产这里有精品| 一区二区三区国产盗摄| 国产精品v日韩精品| 一区二区美女视频| 成人免费观看av| 欧美日韩国产免费一区二区三区| 成人jjav| 亚洲综合无码一区二区| 国产h视频在线播放| 欧美日韩尤物久久| 91精品婷婷国产综合久久性色 | 一区中文字幕在线观看| 午夜小视频在线观看| 欧美日韩免费区域视频在线观看| 丰满少妇在线观看| 亚洲电影一区| 一二美女精品欧洲| 久久久久久国产精品免费播放| 国产视频亚洲| 91精品中文在线| 亚洲日本香蕉视频| 亚洲日本va在线观看| 国产精品97在线| 成人在线日韩| 亚洲午夜女主播在线直播| 亚洲天堂黄色片| 视频一区在线播放| 国产精品国产精品国产专区不卡| 精品福利视频导航大全| 亚洲综合成人在线视频| 亚洲黄色a v| 乱亲女h秽乱长久久久| 色黄久久久久久| 少妇一级淫片免费放中国 | 成人欧美一区二区三区黑人免费| 免费毛片在线| 亚洲一区二区精品3399| av在线无限看| 天堂成人娱乐在线视频免费播放网站 | 香蕉视频在线观看黄| 国产探花在线精品| 91精品国产高清| www精品国产| 国产精品的网站| 无码内射中文字幕岛国片| 91麻豆精品激情在线观看最新 | 免费人成在线观看视频播放| 色天使综合视频| 精品香蕉一区二区三区| 久久久久无码国产精品不卡| 老司机免费视频一区二区| 久久精品丝袜高跟鞋| 成人福利影视| 精品美女一区二区三区| 男的操女的网站| 激情小说亚洲一区| 一区一区视频| 国产精品一区二区免费福利视频| 亚洲欧美日韩在线一区| 天天操天天干视频| yourporn久久国产精品| www.av中文字幕| 美腿丝袜亚洲图片| 国内精品久久久久影院 日本资源| 国产精品无码专区av免费播放| 国产精品天天看| 国产小视频精品| 日韩夫妻性生活xx| 国产精品视频yy9099| 成人jjav| 91 com成人网| 日韩欧美国产成人精品免费| 精品一区在线看| 黄色一级视频播放| 亚洲国产欧美国产第一区| 操人视频在线观看欧美| 99国产精品久久久久99打野战| 亚洲日本在线视频观看| 天天爽夜夜爽视频| 亚洲无线一线二线三线区别av| 国产另类自拍| 筱崎爱全乳无删减在线观看| 国产午夜精品久久久 | 日韩精品午夜视频| 亚洲春色综合另类校园电影| 激情欧美一区二区三区黑长吊| 日韩在线观看你懂的| 国产成人精品毛片| 亚洲国产精品久久艾草纯爱| 日本黄色片在线播放| 久久亚洲风情| 亚洲AV无码成人精品一区| 免费一区二区三区在线视频| 久久免费观看视频| 清纯唯美亚洲色图| 欧美日韩在线免费视频| 欧美成人精品欧美一级| a亚洲天堂av| 国产高清视频网站| 午夜亚洲福利| 免费亚洲一区二区| 黄色欧美视频| 欧美成人精品在线视频| 午夜视频在线播放| 欧美日韩一区在线观看| 国产亚洲欧美精品久久久www| 99久久久免费精品国产一区二区| 99视频在线视频| 欧美三级在线| 奇米视频888战线精品播放| 99er精品视频| 97在线观看免费| 一本一道波多野毛片中文在线 | 国产综合香蕉五月婷在线| 丝袜中文在线| 亚洲男人天堂2024| 精品人妻一区二区三区含羞草| 婷婷国产v国产偷v亚洲高清| 美女福利视频网| 成人a免费在线看| 欧美日韩精品区别| 久久国产88| 奇米777四色影视在线看| 国产aⅴ精品一区二区三区久久| 成人久久久久久| 成人性生交大片免费观看网站| 欧美成人午夜激情在线| 国产永久免费高清在线观看| 日韩欧美一二三| 无码人妻精品一区二区50| 一区二区在线观看免费视频播放| 在线观看国产精品一区| 成熟亚洲日本毛茸茸凸凹| 天天视频天天爽| 在线亚洲欧美| 日韩精品一区二区在线视频| 久久人人88| 日本午夜精品一区二区| 91麻豆精品国产91久久久久推荐资源 | 久久精品免费在线| 国产精品国产三级国产| 一级片视频免费看| 91在线丨porny丨国产| 永久免费看片在线观看| 精品一区二区三区视频| 国产性生交xxxxx免费| 国产精品视区| 日本中文字幕网址| 亚洲九九精品| 水蜜桃色314在线观看| 一区二区三区在线观看免费| 色综合视频二区偷拍在线| 香蕉久久精品| 精品国产一区二区三区四区vr| 日韩视频1区| 91免费福利视频| 欧美黑粗硬大| 国产日韩欧美电影在线观看| 黄色精品视频| 国产精品免费福利| 综合在线影院| 国产精品成人va在线观看| 成人片免费看| 国产精品扒开腿做| 成人精品动漫| 国产精品人成电影| 韩国精品视频在线观看| 国产精品视频在线观看| 日本国产亚洲| 成人免费网站在线看| 国产精品一区二区精品| 亚洲一区二区三区在线视频| 欧美视频精品全部免费观看| 91最新在线免费观看| 色妞ww精品视频7777| 成人av播放| 欧亚精品一区| 日本高清不卡三区| 日韩精品欧美| 国产精品夜夜夜爽张柏芝| 91成人影院| 久久人人爽人人爽人人av| 国产日韩免费| 牛夜精品久久久久久久| 久久99国产精品久久99| 男生和女生一起差差差视频| 成人短视频下载| 偷拍女澡堂一区二区三区| 欧美激情资源网| 中文字幕在线观看2018| 亚洲午夜国产一区99re久久| 国产成人在线播放视频| 欧美亚洲综合色| 97视频免费在线| 亚洲二区中文字幕| 国产露出视频在线观看| 久久久精品在线| а√在线中文在线新版| 国产极品精品在线观看| 亚洲一区av| 精品国产一区二区三| 久久福利综合| 国产一级不卡视频| 巨乳诱惑日韩免费av| 婷婷激情综合五月天| 99久久免费精品| 麻豆天美蜜桃91| 精品人伦一区二区三区蜜桃网站| 中文字幕欧美在线观看| 日韩精品一区二区三区在线播放| 同心难改在线观看| 久久精品视频中文字幕| 中文在线аv在线| 亚洲japanese制服美女| 色婷婷av一区二区三区丝袜美腿| 亚洲一区三区电影在线观看| 激情久久一区| 污色网站在线观看| 97se狠狠狠综合亚洲狠狠| 五月天婷婷丁香网| 大桥未久av一区二区三区| 国产又粗又猛又爽| 亚洲乱码国产乱码精品精| huan性巨大欧美| 国产精品久久久久久久久久免费| 亚洲欧洲国产精品一区| 色中色综合成人| 国产模特精品视频久久久久| 欧美污在线观看| 国产精品女人毛片| 人人爽人人爽人人片av| 精品剧情在线观看| 麻豆影视在线观看_| 日本久久久久久久| 精品五月天堂| 成人在线免费观看视频网站| 美女脱光内衣内裤视频久久网站| 中文字幕在线播放视频| 亚洲精品久久久久久国产精华液 | 日韩精品一区二区三区老鸭窝| 国产视频第一区| 51久久精品夜色国产麻豆| 日韩精品一区国产| 三级在线免费观看| 久久精品国产一区二区| 欧美性猛交xxxx乱| 欧美日韩美女在线观看| 天堂网av2014| 欧美激情久久久久| 亚洲精品观看| 国产91视频一区| 国产精品一区二区你懂的| 免费成人深夜蜜桃视频| 欧美亚洲综合网| avav免费在线观看| 国产精品h在线观看| 亚洲小说图片视频| 韩国日本在线视频| 久久免费电影网| 日日夜夜操视频| 国产亚洲欧美另类中文| 国产成人免费9x9x人网站视频| 麻豆成人av| 三级一区在线视频先锋 | 亚洲综合一二区| 亚洲国产精品久久人人爱潘金莲| 欧美精品日韩三级| 日韩精品一区二区三区中文 | 欧美一区二区在线| 香蕉视频成人在线观看| 亚洲av综合一区二区| 色婷婷亚洲精品| 2019中文字幕在线视频| 国产日韩欧美日韩大片| 亚洲国产不卡| 熟女人妻一区二区三区免费看| 亚洲一区二区三区在线| 人妻91麻豆一区二区三区| 91成人福利在线| 国产成人精品三级高清久久91| 538在线视频观看| 国产精品久99| 亚洲黄色一级大片| 欧美性在线观看| 精品一区二区三区中文字幕老牛| 九九九在线观看视频| 中文字幕日韩一区| 国产福利视频导航| 91av国产在线| 欧美日韩国产一区二区三区不卡| 黄色片视频在线| 一区二区三区在线视频播放| 噜噜噜久久,亚洲精品国产品| 4444欧美成人kkkk| 日韩成人影院| 亚洲av成人片无码| 在线亚洲一区二区| 四季久久免费一区二区三区四区| 国产一区二区久久久| 三级在线观看一区二区| 老女人性淫交视频| 日韩精品欧美激情| 欧美天堂一区| 国产原创中文在线观看| 国产精品免费视频网站| 亚洲av无码乱码在线观看性色| 欧美中文在线视频| 婷婷综合视频| 双性尿奴穿贞c带憋尿| 欧美卡1卡2卡| 小草在线视频免费播放| 大桥未久一区二区三区| 久久久久免费观看| 精品人妻无码一区二区色欲产成人| 欧美一级免费看| 一区二区三区午夜视频| 亚洲国产av一区| 日韩欧美亚洲一区二区| 日韩一区精品| 美女日批免费视频| 亚洲久本草在线中文字幕| 国产一级在线观看| 国产欧美日韩综合精品二区| 老司机精品视频在线|