# Pick all subgraphs by a specific pattern from a graph

So I'm looking forward to pick a lets say a triangle/square/../hexagon from a graph.

What do i mean by that:

```input from keybord: a-b b-c c-a
```

and

output m-n-o, x-y-z, s-t-u (where each of this subgraphs respect that relation ship pattern of the vertex)

How to solve this: It has to be a raw version not with optimisations or other stuff, but without backtracking / recursion.

Solution: transpose the vertexes to a matrix and do combinations in for loops.

The problem i have: for instance if i want my graph to accept up to octogns, do I need to make 8 for in for's ?!

## Answers

Own solution not the best, but it is suficient to acomplish the fallowing. Acomplished with combinatorics jar. Hole it helps

```    @SuppressWarnings("unchecked")
public static void drawMatrix(Graph g, int tempMatrixSize){
System.out.println(" ");
System.out.println("Matrix:");
ArrayList<Node> nodesSet = new ArrayList<>();
nodesSet = (ArrayList<Node>) g.getNodes().clone();

int size = nodesSet.size();

int[][] matrix = new int[size][size];

System.out.print("  ");
for (Node node : nodesSet){
System.out.print(" " + node.getName()+ " ");
}
System.out.println();

for (int i=0; i<size; i++) {
System.out.print(nodesSet.get(i).getName()+ " ");
for (int j=0; j<size; j++){
if (i == j) {
System.out.print(" 1 ");
matrix[i][j] = 1;

}
else{
if (nodesSet.get(i).isFriend(nodesSet.get(j))) {
System.out.print(" X ");
matrix[i][j] = 1;
}
else {
System.out.print(" 0 ");
matrix[i][j] = 0;
}
}
}
System.out.println();
}
System.out.println();

// temp matrix
int[][] tempMatrix = new int[tempMatrixSize][tempMatrixSize];

// Find combinations
ArrayList<Integer> al= new ArrayList<>();
for (int i = 0; i<size; i++ ){
al.add(i);
}

ICombinatoricsVector<Integer> initialVector = Factory.createVector(al);
Generator<Integer> gen = Factory.createSimpleCombinationGenerator(initialVector, tempMatrixSize);
int index = 0;
for (ICombinatoricsVector<Integer> combination : gen) {
boolean isConnected = true;
System.out.println(combination);
List<Integer> comb = combination.getVector();
for(int i=0; i<tempMatrixSize; i++){
for(int j=0; j<tempMatrixSize; j++){
tempMatrix[i][j] = matrix[comb.get(i)][comb.get(j)];
//                  System.out.print(tempMatrix[i][j]+ " ");
}
System.out.println();

}
// main matrix coordinations
System.out.println("main matrix used coords: ");
for(int i=0; i<tempMatrixSize; i++){
for(int j=0; j<tempMatrixSize; j++){
tempMatrix[i][j] = matrix[comb.get(i)][comb.get(j)];
System.out.print("["+comb.get(i)+","+comb.get(j)+"] ");
}
System.out.println();
}
System.out.println();

for(int i=0; i<tempMatrixSize; i++){
for(int j=0; j<tempMatrixSize; j++){
if (tempMatrix[i][j] == 0){
isConnected = false;
}
}
}
if (isConnected) {
System.out.println("Is connected by >" + tempMatrixSize);
for (int i=0; i<tempMatrixSize; i++) {
System.out.println(" >" +nodesSet.get(comb.get(i)).getName());
}
}
}
```

### How can you execute a command at the end of a for loop?

I have the following code

### Soft Keyboard hide on backpress

I need to identify the event of back press which hide the softkeyboard

###### About UNIX Resources Network

Original, collect and organize Developers related documents, information and materials, contains jQuery, Html, CSS, MySQL, .NET, ASP.NET, SQL, objective-c, iPhone, Ruby on Rails, C, SQL Server, Ruby, Arrays, Regex, ASP.NET MVC, WPF, XML, Ajax, DataBase, and so on.