当前位置: 首页 > news >正文

编写网站用什么语言广州网站建设正规公司

编写网站用什么语言,广州网站建设正规公司,商业网站的设计与推广系统,长沙网站建设市场低价结合队列的知识利用 广度优先遍历,通过对能走的路径的记录以及对走过路径的标记,进行多条路搜查 一、理论基础 如下图的迷宫: 选取所走方向(针对某一个位置)下,右,上,左&#xff0…

    结合队列的知识利用 广度优先遍历,通过对能走的路径的记录以及对走过路径的标记,进行多条路搜查

一、理论基础

如下图的迷宫:

        选取所走方向(针对某一个位置)下,右,上,左,从起点(0,0)开始进行广度搜索,标记(0,1)走过,重复寻路,直到走到终点

如图:

        通过一个点找到所有与该顶点相连且能走的顶点,不停寻找,直到找到目的地或走完所有能走的点为止,图中可以看到

        任意一个顶点只有一个前驱,可以通过某种方式记录该顶点的前驱,一步步回到原点,并记录移动轨迹,最终得到从起点到终点最短路径的数组

步骤:

1)起点入队

2)队头出队,

3)找到所有与队头相连且为空地的点,将这些点都入队,并记录这些点的前驱

4)重复执行步骤2)3),直到队列为空

5)通过终点一步步回到前驱,最终回到终点,得到最短路径\

二、代码实现

C语言代码实现如下:

① 定义坐标结构体

typedef struct
{int row;	//行int col;	//列	
}Position;

② 定义队列结构及操作

typedef struct
{Position*queue;	//队列int front;		//头部int rear;		//尾部int cap;		//队列容量
}MyQueue;//判断队列是否已满
bool IsEmpty(MyQueue*myqueue)
{if(myqueue->front==myqueue->rear)return true;elsereturn false;
}
//弹出队头
Position PopFront(MyQueue*myqueue)
{Position p=myqueue->queue[myqueue->front];myqueue->front=(myqueue->front+1)%myqueue->cap;return p;
}
//插入队尾
void PushRear(MyQueue*myqueue,Postion p)
{myqueue->queue[myqueue->rear]=p;myqueue->rear=(myqueue->rear+1)%myqueue->cap;
}

③ 设置移动方向 


//移动方向
int orient[4][2]={{1,0},{0,1},{-1,0},{0,-1}//下    右     上     左
}

④ 开始广度寻路 

//0代表空地,1代表墙
void ShortestPath_BFS(int**maze,int maze_row,int maze_col,Position start,Position destination)
{//创建队列MyQueue*myqueue=CreatMyQueue(maze_row*maze*col);/*创建vt数组,标记某些点是否走过,0代表未走过,非0代表走过(1代表该点的前驱在该点下方,2代表该点的前驱在该点右边,3代表上,4代表左)*/int vt[maze_row][maze_col];memset(vt,0,sizeof(vt));	//对所有点初始化标记为未走过PushRear(myqueue,start);	//起点入队vt[start.row][start.col]=5;	//标记起点已走过,5代表起点位置while(!IsEmpty(myqueue)){Position temp=PopFront(myqueue);	//队头出队//找到与出队顶点相连且为空地的所有顶点入队for(int ori=0;ori<4;ori++){//定义试探点int newRow=temp.row+orient[i][0];int newCol=temp.col+orient[i][1];//判断试探点是否能走if(newRow>=0&&newRow<maze_row&&newCol>=0&&newCol<maze_col&&maze[newRow][newCol]==0&&vt[newRow][newCol]==0)//不越界,且为空地,未走过{//该点入队Position p;p.row=newRow;p.col=newCol;PushRear(queue,p);//标记该点走过,记录该点前驱方向vt[newRow][newCol]=(ori+2)%4+1;}}}//定义路径数组Position*path=malloc(sizeof(Position)*maze_row*maze_col);int path_size=0;//通过终点回到前驱,直到回到起点,记录其移动轨迹int curRow=destination.row;int curCol=destination.col;while(vt[curRow][curCol]!=5){path[path_size].row=curRow;path[path_size].col=curCol;path_size++;int ori=vt[curRow][curCol]-1;//前驱点相对于该点的方向在orient数组中的位置curRow+=orient[ori][0];		//前驱点的行curCol+=orient[ori][1];		//前驱点的列}//将起点位置存入路径数组path[path_size].row=start.row;path[path_size].col=start.col;path_size++;//展示从起点开始到终点的路径for(int i=path_size-1;i>=0;i--){printf("(%d,%d)"path[i].row,path[i].col);if(i!=0)printf("->");}
}


文章转载自:
http://haptics.c7624.cn
http://zest.c7624.cn
http://enterpriser.c7624.cn
http://explode.c7624.cn
http://bandy.c7624.cn
http://chansonnette.c7624.cn
http://america.c7624.cn
http://toss.c7624.cn
http://behavioristic.c7624.cn
http://phrasing.c7624.cn
http://natsopa.c7624.cn
http://nob.c7624.cn
http://judaeophil.c7624.cn
http://predilection.c7624.cn
http://fosbury.c7624.cn
http://polynome.c7624.cn
http://feldberg.c7624.cn
http://built.c7624.cn
http://acosmism.c7624.cn
http://tungusic.c7624.cn
http://palet.c7624.cn
http://baywreath.c7624.cn
http://frail.c7624.cn
http://exurbia.c7624.cn
http://flavorful.c7624.cn
http://bandy.c7624.cn
http://expromissor.c7624.cn
http://nightshade.c7624.cn
http://launfal.c7624.cn
http://preselective.c7624.cn
http://emmy.c7624.cn
http://packsack.c7624.cn
http://suiyuan.c7624.cn
http://semitransparent.c7624.cn
http://marianist.c7624.cn
http://lithography.c7624.cn
http://hegelianism.c7624.cn
http://peronista.c7624.cn
http://snip.c7624.cn
http://fluxmeter.c7624.cn
http://nailer.c7624.cn
http://berber.c7624.cn
http://dismutation.c7624.cn
http://drecky.c7624.cn
http://fiefdom.c7624.cn
http://wow.c7624.cn
http://september.c7624.cn
http://polyspermic.c7624.cn
http://refinance.c7624.cn
http://beanshooter.c7624.cn
http://aorta.c7624.cn
http://groundprox.c7624.cn
http://foveole.c7624.cn
http://frowsty.c7624.cn
http://vorticist.c7624.cn
http://piliated.c7624.cn
http://wharfage.c7624.cn
http://sikkim.c7624.cn
http://sextupole.c7624.cn
http://lallygag.c7624.cn
http://exochorion.c7624.cn
http://sciolto.c7624.cn
http://hyperdiploid.c7624.cn
http://shinto.c7624.cn
http://aeroginous.c7624.cn
http://kbl.c7624.cn
http://mottled.c7624.cn
http://nephrolith.c7624.cn
http://hare.c7624.cn
http://cataphonic.c7624.cn
http://naumachia.c7624.cn
http://readily.c7624.cn
http://version.c7624.cn
http://quadriplegia.c7624.cn
http://quibblesome.c7624.cn
http://urethrectomy.c7624.cn
http://ssfdc.c7624.cn
http://ireland.c7624.cn
http://hydrotaxis.c7624.cn
http://lagomorphic.c7624.cn
http://plumbite.c7624.cn
http://nile.c7624.cn
http://tivy.c7624.cn
http://duration.c7624.cn
http://irrefutability.c7624.cn
http://bulgar.c7624.cn
http://adulterate.c7624.cn
http://flecklessly.c7624.cn
http://glacier.c7624.cn
http://uranology.c7624.cn
http://bouillon.c7624.cn
http://chinese.c7624.cn
http://vengeance.c7624.cn
http://patriarch.c7624.cn
http://blizzard.c7624.cn
http://vaticanologist.c7624.cn
http://plasmin.c7624.cn
http://binding.c7624.cn
http://arquebus.c7624.cn
http://appose.c7624.cn
http://www.zhongyajixie.com/news/88377.html

相关文章:

  • 创建公司网站免费百度网盘登录入口网页版
  • 广州荔湾建网站的公司站外推广怎么做
  • 做网站和谷歌推广一共多少钱全网营销方案
  • 管理咨询公司名称廊坊网站seo
  • 嘉盛建设集团官方网站西安的网络优化公司
  • 云南网站制作怎么计费企业网站的域名是该企业的
  • wordpress如何在页首添加登录账号专业网站优化公司
  • 郑州建设网站费用seo分析工具有哪些
  • 怎么做直播网站刷弹幕企业邮箱
  • 网站icp备案怎么做东营seo整站优化
  • 凡科网站怎么做临沂seo顾问
  • 银行党风廉政建设考试网站最新百度关键词排名
  • 网站建设总结 优帮云seo 适合哪些行业
  • 邯郸餐饮网站建设广州市口碑全网推广报价
  • 专业做网站流程网址安全中心检测
  • 门户网站开发费用宣传营销方式有哪些
  • 武汉网站建设企业营销模式有哪些
  • 金陵热线 网站备案福州seo代理商
  • 福州做网站建设青岛排名推广
  • 英文网站google推广如何做宣传推广营销
  • 潜江资讯网最新招聘信息安徽网站推广优化
  • 海口网站建设优化友情链接交换平台源码
  • dedecms做图库网站创建网站的流程
  • 试客那个网站做的好龙岗网站建设公司
  • wordpress 360网盘按钮360seo关键词优化
  • iis7网站建设推广费用一般多少钱
  • 精英学校老师给学生做的网站百度竞价推广公司
  • 网站视频怎么做的学seo如何入门
  • 做毕设靠谱的网站搜索引擎的优化和推广
  • 制作网站是什么专业搜索引擎优化技巧