DFS

void DFS(int arr[10], int arr_size, int n, int vex[10], int result[10]) {
	if (n == arr_size) {
		for (int i = 0; i < arr_size; i++) {
			printf("%d ", result[i]);
		}
		printf("\n");

		return;
	}

	for (int i = 0; i < arr_size; i++) {
		if (vex[i] == 0) {
			vex[i] = 1;
			result[n] = arr[i];
			DFS(arr, arr_size, n + 1, vex, result);
			vex[i] = 0;
		}
	}
}



int main()
{
	int arr[10] = { 2 ,3, 4, 5 };
	int vex[10] = { 0 };
	int result[10] = { 0 };

	DFS(arr, 4, 0, vex, result);

	return 0;
}

 

你可能感兴趣的:(c/c++)