数据结构题目,广度优先和深度优先

作者&投稿:烛尚 (若有异议请与网页底部的电邮联系)
关于数据结构的深度优先遍历和广度优先遍历以及最小生成树 第四大题的第一题~

首先看一下深度优先和广度优先怎么遍历:
深度优先遍历从某个顶点出发,首先访问这个顶点,然后找出刚访问这个结点的第一个未被访问的邻结点,然后再以此邻结点为顶点,继续找它的下一个新的顶点进行访问,重复此步骤,直到所有结点都被访问完为止。
广度优先遍历从某个顶点出发,首先访问这个顶点,然后找出这个结点的所有未被访问的邻接点,访问完后再访问这些结点中第一个邻接点的所有结点,重复此方法,直到所有结点都被访问完为止。
在看题目,其要求按顺时针方向:
深度优先序列:V1 V2 V3 V5 V4
广度优先序列:V1 V2 V4 V3 V5
最小生成树,有两种方法,prim和kruskal算法。
这题最小生成树如下:
[(V4,V5),(V1,V4),(V2,V4),(V5,V3)],其中(V4,V5)表示V4和V5点之间连线。如下图类似(这里简单表示一下)。
V1 V2 V3
\ / /
V4----V5

图的遍历的定义:从图的某个顶点出发访问遍图中所有顶点,且每个顶点仅被访问一次。(连通图与非连通图)不论是尝试优先遍历,还是广度优先遍历,其遍历的顺序都不是唯一的。深度优先遍历(DFS);1、访问指定的起始顶点;2、若当前访问的顶点的邻接顶点有未被访问的,则任选一个访问之;反之,退回到最近访问过的顶点;直到与起始顶点相通的全部顶点都访问完毕;3、若此时图中尚有顶点未被访问,则再选其中一个顶点作为起始顶点并访问之,转 2; 反之,遍历结束。从A点出发的深度优先遍历序列:A B C E G D F广度优先搜索遍历类似于树的按层次遍历。对于无向连通图,广度优先遍历是从图的某个顶点v0出发,在访问v0之后,依次搜索访问v0的各个未被访问过的邻接点w1,w2,…。然后顺序搜索访问w1的各未被访问过的邻接点,w2的各未被访问过的邻接点,…。即从v0开始,由近至远,按层次依次访问与v0有路径相通且路径长度分别为1,2,…的顶点,直至连通图中所有顶点都被访问一次。从A点出发的深度优先遍历序列:A B C D E F G

(一)深度优先搜索的特点是:

(1)从上面几个实例看出,可以用深度优先搜索的方法处理的题目是各种
各样的。
有的搜索深度是已知和固定的,如例题2-4,2-5,2-6;有的是未知的,如例题2-7、例题2-8;
有的搜索深度是有限制的,但达到目标的深度是不定的。
但也看到,无论问题的内容和性质以及求解要求如何不同,它们的程序结构
都是相同的,即都是深度优先算法(一)和深度优先算法(二)中描述的算法结
构,不相同的仅仅是存储结点数据结构和产生规则以及输出要求。
(2)深度优先搜索法有递归以及非递归两种设计方法。一般的,当搜索深度较小、问题递归方式比较明显时,用递归方法设计好,它可以使得程序结构更简捷易懂。当搜索深度较大时,如例题2-5、2-6。当数据量较大时,由于系统堆栈容量的限制,递归容易产生溢出,用非递归方法设计比较好。
(3)深度优先搜索方法有广义和狭义两种理解。广义的理解是,只要最新产生的结点(即深度最大的结点)先进行扩展的方法,就称为深度优先搜索方法。在这种理解情况下,深度优先搜索算法有全部保留和不全部保留产生的结点的两种情况。而狭义的理解是,仅仅只保留全部产生结点的算法。本书取前一种广义的理解。
不保留全部结点的算法属于一般的回溯算法范畴。
保留全部结点的算法,
实际上是在数据库中产生一个结点之间的搜索树,
因此也属于图搜索算法的范畴。
(4)不保留全部结点的深度优先搜索法,由于把扩展望的结点从数据库中弹出删除,这样,一般在数据库中存储的结点数就是深度值,因此它占用的空间较少,所以,当搜索树的结点较多,用其他方法易产生内存溢出时,深度优先搜索不失为一种有效的算法。
(5)从输出结果可看出,深度优先搜索找到的第一个解并不一定是最优解。例如例题2-8得最优解为13,但第一个解却是17。如果要求出最优解的话,一种方法将是后面要介绍的动态规划法,另一种方法是修改原算法:把原输出过程的地方改为记录过程,即记录达到当前目标的路径和相应的路程值,并与前面已记录的值进行比较,保留其中最优的,等全部搜索完成后,才把保留的最优解输出。
二、广度优先搜索法的显著特点是:
(1)在产生新的子结点时,深度越小的结点越先得到扩展,即先产生它的子结点。为使算法便于实现,存放结点的数据库一般用队列的结构。
(2)无论问题性质如何不同,利用广度优先搜索法解题的基本算法是相同的,但数据库中每一结点内容,产生式规则,根据不同的问题,有不同的内容和结构,就是同一问题也可以有不同的表示方法。
(3)当结点到跟结点的费用(有的书称为耗散值)和结点的深度成正比时,特别是当每一结到根结点的费用等于深度时,用广度优先法得到的解是最优解,但如果不成正比,则得到的解不一定是最优解。这一类问题要求出最优解,一种方法是使用后面要介绍的其他方法求解,另外一种方法是改进前面深度(或广度)优先搜索算法:找到一个目标后,不是立即退出,而是记录下目标结点的路径和费用,如果有多个目标结点,就加以比较,留下较优的结点。把所有可能的路径
都搜索完后,才输出记录的最优路径。
(4)广度优先搜索算法,一般需要存储产生的所有结点,占的存储空间要比深度优先大得多,因此程序设计中,必须考虑溢出和节省内存空间得问题。
(5)比较深度优先和广度优先两种搜索法,广度优先搜索法一般无回溯操作,即入栈和出栈的操作,所以运行速度比深度优先搜索算法法要快些。
总之,一般情况下,深度优先搜索法占内存少但速度较慢,广度优先搜索算法占内存多但速度较快,在距离和深度成正比的情况下能较快地求出最优解。因此在选择用哪种算法时,要综合考虑。决定取舍

先画图,广度优先就是从上往下,深度优先有几种遍历方法


数据结构 图的题目 感觉第九题的答案是BCD 第十一题的答案是AC 高手来...
【11】广度优先的算法实现时,同样是需要按照顺序进栈(根据接邻矩阵),而不是根据图(计算机比较死板)。首先从0出发,0进栈;{0} 与0相邻的点1,2,3,4进栈,0出栈;{1,2,3,4} 与1相邻的点6进栈,1出栈;{2,3,4,6} 与2相邻的点没有,2出栈;{3,4,6} 与3相邻的...

广度优先搜索为什么不能判断回路
因为出入队操作,队中留存的节点元素并不能够充分说明是否存在回路。根据查询CSDN显示,广度优先搜索借助队列结构,读取节点是通过出队,而后又将已读取的节点后继进行入队,由于出入队操作,队中留存的节点元素并不能够充分说明是否存在回路,所以广度优先搜索不能判断回路是因为出入队操作,队中留存的节点元素...

广度优先搜索怎么保证最优解啊?(新手不懂,求指导)
尽可能广的遍历图的结点,类似于树的层序遍历。遍历顺序不唯一,但确定的遍历顺序,对应确定的生成树。

求数据结构试题…重点
2、深度优先遍历与广度优先遍历要点:生成树与生成树林的定义。深度优先搜索是个递归的过程,而广度优先搜索是个非递归的过程。为防止重复访问已经访问过的顶点...2014-07-12 求此数据结构试题正确答案 2007-12-20 求数据结构期末测试题一套 7 2012-10-24 求解数据结构试题!!! 1 2010-03-09 数据结构试题...

我有一套计算机数据结构方面的试题,请各位哥哥,弟弟,姐姐,妹妹帮忙看一...
10、如据结构的存储结构包括顺序、(链式)、索引、散列等四种。二、选择题 1、对于下图描述二叉树,其后序遍历序列为:C A a,b,c,d,e,f B a,b,d,c,e,f C c,b,e,f,d,a D a,b,d,c,e,f a b d c e f 2、对于下图的图,按深度优先遍历序列为:看...

自考02142《数据结构导论》通关宝典
在详细复习过程中,要注意顺序表的插入与删除操作,以及二叉排序树、二叉树遍历、哈夫曼树和队列\/栈的基本操作。例如,循环队列的队头和队尾计算公式,以及队列的先进先出特性。图的遍历方式,如广度优先搜索和深度优先搜索的异同,以及稀疏矩阵的压缩存储策略。填空题部分,需要理解数据结构的基本概念,如...

深度优先和广度优先 的区别 ,用法。
1、主体区别 深度优先搜索是一种在开发爬虫早期使用较多的方法。它的目的是要达到被搜索结构的叶结点(即那些不包含任何超链的HTML文件)。宽度优先搜索算法(又称广度优先搜索)是最简便的图的搜索算法之一,这一算法也是很多重要的图的算法的原型。2、算法区别 深度优先搜索是每次从栈中弹出一个元素,搜索...

谁有数据结构(C语言版)的期末上机试题 啊?跪求。。。
),输入一组关键字序列,根据线性探测再散列解决冲突的方法建立哈希表的存储结构,显示哈希表,任意输入关键字,判断是否在哈希表中。排序 以下问题要求统一在一个大程序里解决。25、折半插入排序 26、冒泡排序 27、快速排序 28、简单选择排序 29、归并排序 30、堆排序 这些是我们的上机题目 请参考 ...

资料结构试题求正确答案
c.总之“抽象资料型别”是“物理”概念,“资料结构”是“逻辑”概念。“抽象资料型别”来实现“资料结构”。 希望对你能有所帮助。 寻一份《资料结构》试题及答案 《资料结构》试题一、选择题(每小题2分,共30分)1. 若某线性表中最常用的操作是取第i 个元素和找第i个元素的前趋元素,则采用( )储存方式最...

一道C语言棋盘最优路径的题目,求教
这题还是有点意思的。正如diordna所说,因为涉及到全局最优,大小又是1000x1000,感觉广搜有点困难,所以打算试试DP。。思路如下,不知道对不对。。Part.1设map[i][j]保存棋盘格子的价值 (i = 0..n-1, j = 0..m-1)设f[i][j][k]记录棋盘(i, j)位置的最大价值和 (i = 0..n-1...

盐源县17692672520: 数据结构题目,广度优先和深度优先 -
剑肿洛凯: (一)深度优先搜索的特点是:(1)从上面几个实例看出,可以用深度优先搜索的方法处理的题目是各种 各样的.有的搜索深度是已知和固定的,如例题2-4,2-5,2-6;有的是未知的,如例题2-7、例题2-8;有的搜索深度是有限制的,...

盐源县17692672520: 数据结构中宽度优先搜索是广度优先还是深度优先搜索. -
剑肿洛凯: 广度

盐源县17692672520: 深度优先搜索和广度优先搜索、A星算法三种算法的区别和联系? -
剑肿洛凯:[答案] 1、何谓启发式搜索算法 在说它之前先提提状态空间搜索.状态空间搜索,如果按专业点的说法就是将问题求解过程表现为从... 这两种算法在数据结构书中都有描述,可以参看这些书得到更详细的解释. 前面说的广度和深度优先搜索有一个很大的缺陷...

盐源县17692672520: 一道数据结构选择题 在下列应用中,需要用队列的是: -
剑肿洛凯:[选项] A. :实现递归算法 B. :实现广度优先遍历 C. :实现表达式计算 D. :实现深度优先遍历

盐源县17692672520: 数据结构的判断题,麻烦告知原因1、对于有向图G,如果从任一顶点出发进行一次深度优先或广度优先搜索就能访问每个顶点,则该图一定是完全图.2、循... -
剑肿洛凯:[答案] 23是对的,1忘记了,数据结构里面有详细说明这两种搜索. 2是因为单链表的最后一个结点的指针是空,而循环结构是把这个指针指向头指针,形成循环链表. 3是因为大根堆只要求上边的数比下边的大就行,那么小的数在左边还是右边就不一定咯

盐源县17692672520: 数据结构习题 在一个带权连通图G中,权值最小的边一定包含在G的_____生成树中. -
剑肿洛凯:[选项] A. 广度 数据结构习题 在一个带权连通图G中,权值最小的边一定包含在G的_____生成树中. (A)广度优先 B. 深度优先 C. 最小 D. 任何

盐源县17692672520: 数据结构 深度优先遍历和广度 -
剑肿洛凯: 无向图:两个结点之间的路径没有方向区分 有向图:两个结点之间的路径有方向区分,从A到B的路径长和从B到A的路径长可以不同 深度优先遍历:从给定结点出发,选取它的邻接结点中某个未被访问的结点访问.被访问的结点成为新的给定结点.重复上述过程,直到当前结点没有未被访问的邻接结点.接着开始回溯,返回上一次访问的结点继续寻找其未被访问的邻接结点,直至完成遍历. 广度优先遍历:从给定结点出发,依次访问它的所有邻接结点.然后按照这些结点的被访问顺序,依次访问这些结点的所有邻接结点.重复上述过程,直至完成遍历.

盐源县17692672520: 数据结构深度优先遍历: -
剑肿洛凯: 图的深度优先遍历类似于树的前序遍历.首先访问出发点a,并将其标记为已访问过;然后依次从a出发搜索a的每个邻接点b,c,e.若b未曾访问过,则以b为新的出发点继续进行深度优先遍历,直至图中所有和源点a有路径相通的顶点(亦称为从...

盐源县17692672520: 数据结构里面的一道题,大家动手试试看看,能不能得到正确答案.问题是求深度优先遍历和广度优先遍历的结 -
剑肿洛凯: 深度遍历顺序:0,1,2,3,4,5,8,6,7 .广度优先遍历顺序:0,1,5,6,2,4,8,7,3.你的图画错了(事实上根本就不需要画图),另外像这种题目根据图做深度优先遍历和广度优先遍历的结果往往不是唯一的,但是如果给出的邻接表则结果是唯一的.

盐源县17692672520: 数据结构 深度优先遍历 -
剑肿洛凯: 我帮你复习一下图的知识:1. 深度优先遍历:深度优先就是从树的某个节点开始搜索,查看它所有的领结点,如果这个邻接点的无其他邻接点,则忽略该节,再次访问下个节,以此类推,一直到访问到的邻接点再没有其它的邻接点为止,这个节...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网