JAVA FILA How to implement this algorithm?

I am studying data structure, and one of the challenges is the following:
Create an algorithm that will paint a heart in the form of data in a matrix.

Follow the code

tail pack;
public class Fila {
private int vet[];
private int start, end, amount;

            Public Row (int size)
{
vet = new int[tamanho];
start = end = amount = 0;
}

public void in queue (int x)
{
vet[fim] = x;
++ order;
count ++;
if (final == vet.length)
end = 0;
}

public int parade ()
{
int int = vet[inicio];
starting ++;
quantidade--;
if (start == vet.length)
start = 0;
return resp.
}

public boolean empty ()
{
(amount == 0)
return true;
other
return false;
}

public boolean full ()
{
if (quantity == vet.length)
return true;
other
return false;
}

}

tail pack;
public class FilaTest {

public static void main (String args[])
{
int mat[][]= {{{}}
0,0,1,1,1,1,0,0,1,1,1,1,0,0 {},
0.1,0,0,0,0,1,1,0,0,0,0,1,0 {},
1,0,0,0,0,0,0,0,0,0,0,0,0,0,1 {},
1,0,0,0,0,0,0,0,0,0,0,0,0,0,1 {},
0.1,0,0,0,0,0,0,0,0,0,0,0,1,0 {},
0,0,1,0,0,0,0,0,0,0,0,0,1,0,0 {},
0,0,0,1,0,0,0,0,0,0,0,1,0,0,0 {},
0,0,0,0,1,0,0,0,0,1,1,0,0,0,0 {},
0,0,0,0,0,1,0,0,1,0,0,0,0,0 {},
0,0,0,0,0,0,1,1,0,0,0,0,0,0 {},
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 {}};

show Matrix (mat);
int x = 1, y = 2; // painting start point
System.out.println ("Initial coordinates: x =" + x + ", y =" + y + " n  n");
Row f = new Row (1000);
f.file (x);
f.find (y);
while (! f.vazia ())
{
f.desenfileirar x = ();
f.desenfileirar y = ();
yes (mat[x][y]    == 0) // can you paint?
{
mat[x][y]    = 2; // painted
((x + 1) <mat.length && mat.[x+1][y]    == 0) // below
{
f.file (x + 1);
f.enfilerar (and ++);
}
}

yes (mat[x][y]    == 0) // can you paint?
{
mat[x][y]    = 2; // painted
if ((x-1) <mat.length && mat[x-1][y]    == 0) // below
{
f.enfilerar (x-1);
f.find (y);
}
}

yes (mat[x][y]    == 0) // can you paint?
{
mat[x][y]    = 2; // painted
if ((y + 1) <mat.length && mat.[x][y+1]    == 0) // below
{
f.file (x);
f.file (y + 1);
}
}

yes (mat[x][y]    == 0) // can you paint?
{
mat[x][y]    = 2; // painted
if ((y-1) <mat.length && mat[x][y-1]    == 0) // below
{
f.file (x);
f.enfilerar (y-1);
}
}
}
show Matrix (mat);
}

private static void show Matrix (int[][]    mat.](int i = 0; i <mat.length; i ++) {}
(int j = 0; j <mat.[0].length; j ++)
System.out.print (mat[i][j]    + "");
System.out.println ();
}

}

}

I have two classes, one that fills and parades, and one that manipulates the data. In the current code, the representation comes out like this:
The intention is to paint by inserting a number 2, where it has the 0. and 1 is the edge, the limit where it should be painted to form the drawinginsert the description of the image here