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

女装网站建设福州网站优化

女装网站建设,福州网站优化,市北区大型网站建设,杭州企业建设网站企业题目: 图的深度优先搜索 描述: 图的深度优先搜索类似于树的先根遍历,是树的先根遍历的推广。即从某个结点开始,先访问该结点,然后深度访问该结点的第一棵子树,依次为第二顶子树。如此进行下去,直…

题目:

图的深度优先搜索
描述:
图的深度优先搜索类似于树的先根遍历,是树的先根遍历的推广。即从某个结点开始,先访问该结点,然后深度访问该结点的第一棵子树,依次为第二顶子树。如此进行下去,直到所有的结点都访问为止。在该题中,假定所有的结点以“A”至“Z”中的若干字符表示,且要求结点的访问顺序根据“A”至“Z”的字典顺序进行访问。例如有如下图:

如果要求从H开始进行深度优先搜索,则搜索结果为:H->A->K->U->E.
输入:
输入只包含一个测试用例,第一行为一个自然数n,表示顶点的个数,第二行为n个大写字母构成的字符串,表示顶点,接下来是为一个n*n大小的矩阵,表示图的邻接关系。数字为0表示不邻接,否则为相应的边的长度。
最后一行为一个字符,表示要求进行深度优先搜索的起始顶点。
输出:
用一行输出深度优先搜索结果,起始点为给定的顶点,各顶点之间用一个空格隔开(注意后面的提示)。

样例输入:
5
HUEAK
0 0 2 3 0
0 0 0 7 4
2 0 0 0 0
3 7 0 0 1
0 4 0 1 0
H

样例输出:
H A K U E

代码:

代码与图的广度搜索差不多,不同的就是将队列变为栈

以下两个代码都差不多,都是利用对应的ascll码转换成0~25相应的数字,理论上来说是一样的

权值在本题没有使用

需注意如图:

输入:

5
HUEAG
0 0 2 3 0
0 0 0 7 4
2 0 0 0 0
3 7 0 0 1
0 4 0 1 0
U

输出:

U A G H E 

第一个栈直接储存字符,使用时换成数字

import java.util.Scanner;
import java.util.Stack;public class Xingyuxingxi {public static void main(String[] args){Scanner sc=new Scanner(System.in);int a=sc.nextInt();String b=sc.next();int [][]g=new int[26][26];boolean []pd=new boolean[26];//记录结点是否遍历过for (int i = 0; i < a; i++) {for (int j = 0; j < a; j++) {g[b.charAt(i)-'A'][b.charAt(j)-'A'] = sc.nextInt();//把字符转换成1~25的相应下标,当假设b.charAt(i)='A',b.charAt(j)='B',则相当于用0与1有个边,表示'A'与'B'有个边}}Stack<Character>zhan=new Stack<Character>();char d=sc.next().charAt(0);zhan.push(d);while(!zhan.isEmpty()){d=zhan.pop();int y=d-'A';if(!pd[y])System.out.print(d+" ");pd[y]=true;for (int i = 25; i >=0 ; i--) {//从最后一个字母开始入栈,保证了小的字母先出栈,栈先进后出if(g[y][i]!=0&&!pd[i])//非0表示有连接,false表示没被标记,权值在这里没有用{char zm=(char)(i+'A');zhan.push(zm);}}}}
}

第二个先全部换成数字,栈储存数字,最后输出转换成字符

import java.util.Scanner;
import java.util.Stack;public class Xingyuxingxi {public static void main(String[] args){Scanner sc=new Scanner(System.in);int a=sc.nextInt();String b=sc.next();int [][]g=new int[26][26];boolean []pd=new boolean[26];//记录结点是否遍历过for (int i = 0; i < a; i++) {for (int j = 0; j < a; j++) {g[b.charAt(i)-'A'][b.charAt(j)-'A'] = sc.nextInt();//把字符转换成1~25的相应下标,当假设b.charAt(i)='A',b.charAt(j)='B',则相当于用0与1有个边,表示'A'与'B'有个边}}Stack<Integer>zhan=new Stack<Integer>();char d=sc.next().charAt(0);zhan.push(d-'A');while(!zhan.isEmpty()){int y=zhan.pop();if(!pd[y])System.out.print((char)(y+'A')+" ");pd[y]=true;for (int i = 25; i >=0 ; i--) {//从最后一个字母开始入栈,保证了小的字母先出栈,栈先进后出if(g[y][i]!=0&&!pd[i])//非0表示有连接,false表示没被标记,权值在这里没有用{zhan.push(i);}}}}
}

http://www.zhongyajixie.com/news/17889.html

相关文章:

  • 昆明网站建设在河科技优化大师是什么意思
  • 网络优化工程师需要具备哪些能力seo云优化软件
  • 专业团队图片素材安卓优化大师下载安装到手机
  • 网站服务器有哪些类型有哪些类型有哪些类型有哪些类型有哪些外贸出口平台网站
  • 外贸单证镇江网站seo
  • asp.net网站开发介绍小程序生成平台系统
  • 临沂网站建设教程足球世界排名一览表
  • 胡歌做的穿衣搭配的网站百度关键词排名qq
  • 广州正规网站建设有哪些深圳优化公司统高粱seo
  • 网站开发综合实训报告阿里指数官网最新版本
  • 注册一家科技公司需要多少钱网络seo优化公司
  • 如何用asp做视频网站武汉今日头条最新消息
  • 龙华o2o网站建设搜索引擎优化指的是什么
  • 贵阳哪里可以做网站广东全网推广
  • 社区网站做的比较好的有哪些seo软件优化
  • 在QQ上做cpa网站说是恶意的投放广告
  • 新乡网站建设价格网络营销和传统营销的区别
  • 海报制作win7优化大师免安装版
  • 做游戏网站需要注意的问题整合营销案例
  • 做网站的一些费用企业网络推广的方法有哪些
  • xampp如何搭建wordpressseoul什么意思
  • 聊城专业做网站的公司自己开网站怎么开
  • 做团购网站需要注册哪些商标深圳推广公司介绍
  • 做暖暖视频网站观看2020做seo还有出路吗
  • 动易网站做值班表seo外包顾问
  • 网站架构设计招聘重庆seo服务
  • 深圳高端网站案例网络推广营销策划方案
  • 网站样式建网站seo
  • 成都大型网站建设南京百度推广开户
  • wordpress裁剪失败如何优化搜索引擎