2014年广西壮族自治区数据整理章程

发布时间:   来源:文档文库   
字号:
1、我们用l代表最长平台的长度,用k指示最长平台在数组b中的起始位置(下标)。用j记住局部平台的起始位置,i指示扫描b数组的下标,i0开始,依次和后续元素比较,若局部平台长度(i-j)大于l时,则修改最长平台的长度kl=i-j)和其在b中的起始位置(k=j,直到b数组结束,l即为所求。voidPlatform(intb[],intN
//求具有N个元素的整型数组b中最长平台的长度。{l=1;k=0;j=0;i=0;while(i
{while(i
if(i-j+1>l{l=i-j+1;k=j;}//局部最长平台i++;j=i;}//新平台起点
printf(“最长平台长度%d,在b数组中起始下标为%dlk}//Platform2连通图的生成树包括图中的全部n个顶点和足以使图连通的n-1条边,最小生成树是边上权值之和最小的生成树。故可按权值从大到小对边进行排序,然后从大到小将边删除。每删除一条当前权值最大的边后,就去测试图是否仍连通,若不再连通,则将该边恢复。若仍连通,继续向下删;直到剩n-1条边为止。voidSpnTree(AdjListg
//用“破圈法”求解带权连通无向图的一棵最小代价生成树。
{typedefstruct{inti,j,w}node;//设顶点信息就是顶点编号,权是整型数nodeedge[];
scanf("%d%d",&e,&n;//输入边数和顶点数。
for(i=1;i<=e;i++//输入e条边:顶点,权值。
scanf("%d%d%d",&edge[i].i,&edge[i].j,&edge[i].w;
for(i=2;i<=e;i++//按边上的权值大小,对边进行逆序排序。{edge[0]=edge[i];j=i-1;
while(edge[j].wedge[j+1]=edge[0];}//fork=1;eg=e;
while(eg>=n//破圈,直到边数e=n-1.
{if(connect(k//删除第k条边若仍连通。
{edge[k].w=0;eg--;}//测试下一条边edge[k],权值置0表示该边被删除k++;//下条边}//while}//算法结束。
connect(是测试图是否连通的函数,可用图的遍历实现,3假设以邻接矩阵作为图的存储结构,编写算法判别在给定的有向图中是否存在一个简单有向回路,若存在,则以顶点序列的方式输出该回路(找到一条即可)(注:图中不存在顶点到自己的弧)
有向图判断回路要比无向图复杂。利用深度优先遍历,将顶点分成三类:未访问;已访问但其邻接点未访问完;已访问且其邻接点已访问完。下面用012表示这三种状态。前面已提到,若dfsv)结束前出现顶点uv的回边,则图中必有包含顶点vu的回路。对应程

序中v的状态为1u是正访问的顶点,若我们找出u的下一邻接点的状态为1就可以输出回路了。
voidPrint(intv,intstart//输出从顶点start开始的回路。{for(i=1;i<=n;i++
if(g[v][i]!=0&&visited[i]==1//若存在边(v,i,且顶点i的状态为1{printf(%d,v;
if(i==startprintf(\n;elsePrint(i,start;break;}//if}//Printvoiddfs(intv{visited[v]=1;for(j=1;j<=n;j++
if(g[v][j]!=0//存在边(v,j
if(visited[j]!=1{if(!visited[j]dfs(j;}//ifelse{cycle=1;Print(j,j;}visited[v]=2;}//dfs
voidfind_cycle(//判断是否有回路,有则输出邻接矩阵。visited数组为全局变量。{for(i=1;i<=n;i++visited[i]=0;
for(i=1;i<=n;i++if(!visited[i]dfs(i;}//find_cycle
4、请编写一个判别给定二叉树是否为二叉排序树的算法,设二叉树用llink-rlink法存储。5、二部图(bipartitegraphG=VE)是一个能将其结点集V分为两不相交子集V1V2=V-V1的无向图,使得:V1中的任何两个结点在图G中均不相邻,V2中的任何结点在图G中也均不相邻。1.请各举一个结点个数为5的二部图和非二部图的例子。2请用CPASCAL编写一个函数BIPARTITE判断一个连通无向图G是否是二部图,并分析程序的时间复杂度。设G用二维数组A来表示,大小为n*nn为结点个数)。请在程序中加必要的注释。若有必要可直接利用堆栈或队列操作。
6给定n个村庄之间的交通图,若村庄ij之间有道路,则将顶点ij用边连接,边上Wij表示这条道路的长度,现在要从这n个村庄中选择一个村庄建一所医院,问这所医院应建在哪个村庄,才能使离医院最远的村庄到医院的路程最短?试设计一个解答上述问题的算法,并应用该算法解答如图所示的实例。20分)

本文来源:https://www.2haoxitong.net/k/doc/c5a1a488e518964bce847c0c.html

《2014年广西壮族自治区数据整理章程.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式