samsung第一次面试题(20180302)

一、题目要求

遍历一个图,输出它的其中一个环。

格式:顶点数    顶点对数

例如:

输入

5 5
4 3 2 4 3 5 3 2 1 4
5 5
4 3 2 4 3 5 2 3 1 4
8 9 

5 2 3 2 6 3 8 7 2 1 6 4 2 4 1 5 7 8

输出

4-3-2-4
0

7-8-7

二、算法(自己写的)

#include
#define MAX 10
int vertex[MAX];
int adj[MAX][MAX];


int num=0;
int cycle=999;
int AnswerN=0;
int Answer[MAX];
int N,M;
void DFS_cycle(int i)//遍历顶点i
{
	int j,k;
	if(cycle==1 || cycle==0)//若已经知道是否能够成环,则放弃递归遍历
		return ;
	Answer[num]=i;//将正在递归的数i放在数组中
	num++;
	for(j=1;j4——>3——>2
	//DFS_cycle(3);//输出3——>2——>4——>3
	//DFS_cycle(4);//输出4——>3——>2——>4
	/*printf("cycle=%d\t",cycle);
	printf("AnswerN=%d\t",AnswerN);*/
	printf("环的组成\n");
	for(i=0;i

 

你可能感兴趣的:(C/C++语言)