深度搜索问题c语言,C语言实现的图的深度搜索与广度搜索程序.doc
C語(yǔ)言實(shí)現(xiàn)的圖的深度搜索與廣度搜索程序
C語(yǔ)言實(shí)現(xiàn)的圖的深度搜索與廣度搜索程序
/*
上機(jī)試驗(yàn)5-圖的建立和遍歷
1)建立【無(wú)向】【非連通】圖的鄰接表存儲(chǔ)結(jié)構(gòu),要求頂點(diǎn)個(gè)數(shù)不少于15個(gè)。
2)用DFS及BFS對(duì)此鄰接表進(jìn)行遍歷,打印出兩種遍歷的頂點(diǎn)訪問(wèn)順序。
3)給定圖中任意兩個(gè)頂點(diǎn)v1和v2及整數(shù)k,判斷是否存在從v1到v2的路徑長(zhǎng)度為k的簡(jiǎn)單路徑,若有打印出路徑上的頂點(diǎn)序列(要求路徑上不含回路)。
進(jìn)一步:找出從v1到v2的所有路徑長(zhǎng)度為k的【簡(jiǎn)單】路徑。(簡(jiǎn)單路徑是指:頂點(diǎn)序列中不含【重現(xiàn)】的頂點(diǎn)的路徑。)
*/
#include
#include
#include
#define PointNum 15
using namespace std;
struct V{
int vertex;
int distance;
int sign;
struct V* next;
}Vertex[PointNum+1];
int P[PointNum];
int union_find(int x) // 并查集
{
while(P[x]!=x)x=P[x];
return x;
}
void DFS(int vertex_);
void BFS(int vertex_);
int DFS(int V1, int V2, int V3, int kn);
int lujing[PointNum+1],lujing_I;
int main()
{
int times,vertexNumbers,edgeNumbers,i,j,V1,V2,Distance,n=1,v1,v2,kn;
struct V *p,*q,*temp;
printf("請(qǐng)輸入您所要進(jìn)行的測(cè)試次數(shù):");
scanf("%d",×);
while(times--)
{
printf("\n第%d組數(shù)據(jù)輸入.\n",n++);
printf("請(qǐng)輸入頂點(diǎn)數(shù):");
scanf("%d",&vertexNumbers); //要保證vertexNumbers <= PointNum
for( i = 0 ; i < vertexNumbers ; i ++ )
{
Vertex[i].vertex = i;//
Vertex[i].distance = 0;
Vertex[i].sign = 0;
Vertex[i].next = NULL;
}
printf("請(qǐng)輸入邊數(shù):");
scanf("%d",&edgeNumbers); //要保證vertexNumbers <= PointNum
for( i = 0 ; i < edgeNumbers ; i ++ )
{
printf("請(qǐng)輸入數(shù)據(jù):");
scanf("%d%d%d",&V1,&V2,&Distance);
p = &Vertex[V1];q = Vertex[V1].next;
while( q != NULL ){
p = q;
q = q->next;
}//出來(lái)的時(shí)候q指向Vertex[V1]鄰接表的結(jié)尾-NULL,
temp = (struct V *)malloc(sizeof(Vertex[0]));
p->next = temp; temp->next = NULL;//接上temp
temp->vertex = V2; temp->distance = Distance;temp->sign = 0; //給temp賦值
p = &Vertex[V2];q = Vertex[V2].next;
while( q != NULL ){
p = q;
q = q->next;
}
temp = (struct V *)malloc(sizeof(Vertex[0]));///temp的問(wèn)題???????
p->next = temp; temp->next = NULL;//接上temp
temp->ve
總結(jié)
以上是生活随笔為你收集整理的深度搜索问题c语言,C语言实现的图的深度搜索与广度搜索程序.doc的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: vue 中实现大转盘抽奖
- 下一篇: c语言指着与数组,C语言指针与数组