首页 > 编程知识 正文

深度搜索与广度搜索,八数码深度优先搜索

时间:2023-05-06 16:36:01 阅读:137915 作者:962

思路:查找入口节点,查找该节点的第一个相邻节点,查找该相邻节点的第一个相邻节点,依次向下查找… …,所有节点被巡视,算法结束,结束。

#包含

#define MAX 100

typedef struct Graph{

int vn;

char vt[MAX];

int edge[MAX][MAX];

(df;

int size=1;

intgetindex(chartar,char sor[],int n );

voidDFS(charv0,int n,int edge[][MAX],char vt[],int visited[] );

int main ()。

int visited[10]={0};

df dfs;

char ch='健忘的愿望/pscanf('%d ',dfs.vn );

ch=getchar (;

int i=0,j=0;

for(I=0; i dfs.vn; I ) {

scanf('%c ',dfs.vt[i] );

ch=getchar (;

}

for(I=0; i dfs.vn; I ) {

for(j=0; j dfs.vn; j ) {

scanf('%d ',dfs.edge[i][j] );

}

}

printf((n深度优先搜索: (n );

返回0;

}

intgetindex(charv0,char vt[],int n ) {

int i=0;

for(I=0; i n; I ) {

if(v0==vt[I] ) return i;

}

}

voidDFS(charv0,int n,int edge[][MAX],char vt[],int visited[] ) {

int i=0,j=0;

int index=0;

index=getindex(v0,vt,n );

if (索引==-1 ) {

printf ('节点不存在!' );

返回;

}

if(size==n ) printf )“%c”,vt[index];

ELSEprintf('%c-',vt[index] );

size;

visited[index]=1;

for(I=0; i n; I ) {

if (edge [ index ] [ I ]==1visited [ I ]==0) {

布雷克;

}

}

for(I=0; i n; I ) {

if (edge [ index ] [ I ]==1visited [ I ]==0) {

布雷克;

}

}

}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。