27. 图的D_搜索类似与BFS,不同之处在于使用栈代替BFS中的队列 ,入出队列的操作改为入出栈的操作,即当一个顶点的所有邻接点被搜索之后,下一个搜索出发点应该是最近入栈(栈顶)的顶点。
(1).用邻接表做存储结构,写一个D_搜索算法;(15分) (2).用 D_搜索方法的访问次序和相应的生成树,当从某顶点出发搜索它的邻接点,请按邻接点序号递增序搜索,以使答案唯一。(5分)【中科院 1998 六 (20分)】
28.令G=(V,E)为一个有向无环图,编写一个给图G中每一个顶点赋以一个整数序号的算法,并满足以下条件:若从顶点i至顶点j有一条弧则应使i 【复旦大学 1997 六 (13分)】 31. 设图用邻接表表示,写出求从指定顶点到其余各顶点的最短路径的Dijkstra 算法。 要求:(1).对所用的辅助数据结构,邻接表结构给以必要的说明;(6分) (2).写出算法描述。(C,类-Pascal,类-C均可)(14分) 【南京理工大学 1996 四、1 (20分)】 类似本题的另外叙述有: (1)写出求从某个源点到其余各顶点最短路径的Dijkstra算法。要求说明主要的数据结 构及其作用,最后针对所给有向图,利用该算法,求V0到各顶点的最短距离和路线,即填写下表: 终点 V1 V2 V3 V4 V5 Vj V2 从V0到到各终点的dist的值和最短距离和路线 V3 50V010V15V220 1040V530V420V3 V4 V5 【山东师范大学 1999 六 (14分)】 32.已知个 n顶点的有向图,用邻接矩阵表示,编写函数计算每对顶点的最短路径。 【南京航空航天大学 2001 九 (10分)】 类似本题的另外叙述有: (1)假定有n个城市组成的一个公路网,且认为公路是有向的,并用代价邻接矩阵表示该网络。试设计从指定城市V1到其他城市的最短路径的算法。 【西安电子科技大学 1996 三(10分)】 33.给定n个村庄之间的交通图,若村庄i和j之间有道路,则将顶点i和j用边连接,边上的Wij表示这条道路的长度,现在要从这n个村庄中选择一个村庄建一所医院,问这所医院应建在哪个村庄,才能使离医院最远的村庄到医院的路程最短?试设计一个解答上述问题的算法,并应用该算法解答如图所示的实例。【中国矿业大学 2000 十五 (15分)】 2 12 1 9 5 6 3 10 c 4 4 4 2 2 6 a 1 b 2 3 e 7 6 3 2 1 d 5 4 第33题图 第34题图 34、求解下面有向图的有关问题:(1)判断此有向图是否有强连通分量?若有请画出; (2)画出此有向图的十字链表存储结构;其顶点表结点为(data, firstin, firstout) ,其中data是 顶点的有关信息,firstin是指向以该顶点为弧头的第一条边的指针,firstout是指向以该顶点为弧尾的第一条边的指针。其表结点的结构为(tailvex ,headvex ,weight, hlink, tlink),其中tailvex,headvex分别为弧尾和弧头在图中的序号,weight是弧上的权值,hlink,tlink分别为指向弧头相同和弧尾相同的下一条边的指针。 (3)设其顶点a, b, c, d, e表示一个乡的5个村庄,弧上的权值表示为两村之间的距离; ① 求每个村庄到其它村庄的最短距离; ② 乡内要建立一所医院,问医院设在哪个村庄才能使各村离医院的距离较近。 【北京邮电大学 1997 五(15分)】 35.设计算法,求出无向连通图中距离顶点V0的最短路径长度(最短路径长度以边数为单位计算)为K的所有的结点,要求尽可能地节省时间。【西北大学 2001 七】 36.自由树(即无环连通图)T=(V,E)的直径是树中所有点对间最短路径长度的最大值,即T的直径定义为MAX D(u,v) ,这里D(u,v) (u,v∈V)表示顶点u到顶点v的最短路径长度(路径长度为路径中所包含的边数)。写一算法求T的直径,并分析算法的时间复杂度。(时间复杂度越小得分越高) 【中科院 1999 五、3 (20分)】 37.求图的中心点的算法。设V是有向图G的一个顶点,我们把V的偏心度定义为:max{从w到v的最短距离|w是g中所有顶点},如果v是有向图G中具有最小偏心度的顶点,则称顶点v是G的中心点。 【长沙铁道学院 1998 五、2 (10分)】 38.设G是含有n顶点(设顶点编号为1,2,?,n)的有向无环图。将G用如下定义的邻接 表存储: TYPE arcptr=↑arcnode; arcnode=RECORD{邻接表中的结点} adjvex:1..n; nextarc:arcptr; END; vexnode=RECORD{邻接表的表头结点} vexnum: 1..n; firstarc:arcptr; mpl:integer END; Hnodes=ARRAY[1..n] OF vexnode; 请编写一个非递归算法求G的每个顶点出发的最长路径的长度(每条弧的长度均为1)并存入mpl域中。 要求:首先写出算法思想,然后写算法过程。【山东科技大学 2001 六 (20分)】 39.图G有n个点,利用从某个源点到其余各点最短路径算法思想,设计一产生G的最小生成树的算法。 【东南大学 1994 四(18分)】 40.设G是一个用邻接表表示的连通无向图。对于G中某个顶点v,若从G中删去顶点v及与顶点v相关联的边后,G变成由两个或两个以上非空连通分量所组成的图,则称v是原来图G的一个关节顶点。如下图中,只有顶点4和顶点6是关节顶点,而其它顶点都不是关节顶点。试叙述寻找图G的所有关节顶点的算法,并用算法语言(PASCAL或C)编写一个实现你所给出的算法的程序。【复旦大学 1996 八 (20分)】 2 5 4 7 1 3 6 41.对于一个使用邻接表存储的有向图G,可以利用深度优先遍历方法,对该图中结点进行 拓扑排序。其基本思想是:在遍历过程中,每访问一个顶点,就将其邻接到的顶点的入度减一,并对其未访问的、入度为0的邻接到的顶点进行递归。 (1).给出完成上述功能的图的邻接表定义(结构):(4分) (2).定义在算法中使用的全局辅助数组。(4分) (3).写出在遍历图的同时进行拓扑排序的算法:(10分) 【东北大学 1999 五 (18分)】 【清华大学 1997 一(18分)】 42.欲用四种颜色对地图上的国家涂色,有相邻边界的国家不能用同一种颜色(点相交不算相邻)。 (1).试用一种数据结构表示地图上各国相邻的关系,(6分)。 (2).描述涂色过程的算法。(不要求证明)(12分)。 【浙江大学 2002 八 (18分)】